首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

poj是sb吗?1011解决思路

2013-07-08 
poj是sb吗??1011http://poj.org/problem?id1011&langdefault&changetrue1#include stdio.h#include

poj是sb吗??1011
http://poj.org/problem?id=1011&lang=default&change=true
1

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int  *get(int i)
{
int *v=(int *)malloc(sizeof(int)*i);
int j=0;
while (j<i){
scanf("%d",v+j);
j++;
}
return v;
}
int  comp(const void *v,const void *w){
return *(int *)v-*(int *)w;
}
int ceshi(int i,int j){
if (j%i!=0){
return -1;
}
else {
return 1;
}

}
int fuck(int *v,int i){
int j=0;
int min,sum,fuck;
sum=0;
min=v[i-1];
for(;j<i;j++){
sum+=v[j];
}
for(j=min+1;j<sum;j++){
//printf("%d %d\n",j,sum);
fuck=ceshi(j,sum);
if (fuck>0){

break;
}
}
return j;
}
int main(void)
{
int i;
int *v=NULL;
int jj[1000];
memset(jj,0,1000);
int cao=0;
int laji=0;
while (1){

scanf("%d",&i);
getchar();
if (i==0)
break;
v=get(i);
qsort(v,i,sizeof(int),comp);
laji=fuck(v,i);
jj[cao++]=laji;
free(v);
v=NULL;
}
cao=0;
while (jj[cao]!=0){
printf("%d\n",jj[cao++]);
}
return 0;
}

2
#include<stdio.h>
#include <stdlib.h>
int  *get(int i)
{
int *v=(int *)malloc(sizeof(int)*i);
int j=0;
while (j<i){
scanf("%d",v+j);
j++;
}
return v;
}
int  comp(const void *v,const void *w){
return *(int *)v-*(int *)w;
}
int ceshi(int i,int j){
if (j%i!=0){
return -1;
}
else {
return 1;
}

}
void fuck(int *v,int i){
int j=0;
int min,sum,fuck;
sum=0;
min=v[i-1];
for(;j<i;j++){
sum+=v[j];
}
for(j=min+1;j<sum;j++){
//printf("%d %d\n",j,sum);
fuck=ceshi(j,sum);
if (fuck>0){
printf("%d\n",j);
break;
}

}
}
int main(void)
{
int i;
int *v=NULL;
while (1){
scanf("%d",&i);
getchar();
if (i==0)
break;
v=get(i);
qsort(v,i,sizeof(int),comp);
fuck(v,i);
free(v);
v=NULL;
}
return 0;
}

这两个只是输出方式不一样??
一直Wrong Answer


请这里的大神,推荐个好的最好不是china的
[解决办法]
看你的函数名,我也没什么想看下去的欲望了.
你这样的心态,别说是china的,即使是国外的,你也是一样的心态.
oj本来就是这样,对每一种格式都严格要求,甚至多一个空格也不会AC.
国外的也是一样,你还是好好摆正心态吧.
[解决办法]
测试用例:
9
15 3 2 11 4 1 8 8 8

6
6 2 2 4 8 8

5
1 1 1 1 1

2
1 1

4
2 2 9 9

3
1 2 3

64
40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40
40 40 43 42 42 41 10 4 40 40 40 40 40 40 40 40 40 40 40 40 40
40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40
40

7
49 48 47 46 45 44 43

7
3 4 5 5 5 5 13

7
2 7 7 7 7 10 20

6
1 2 3 11 11 20

7
63 2 44 12 60 35 60

9
5 2 1 5 2 1 5 2 1

4
1 2 3 4

64
32 32 32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32 32 32
33 33 31 31

64
40 40 30 35 35 26 15 40 40 40 40 40 40 40 40 40 40 40 40 40 40
40 40 43 42 42 41 10 4 40 40 40 40 40 40 40 40 40 40 40 40 40
40 25 39 46 40 10 4 40 40 37 18 17 16 15 40 40 40 40 40 40 40


40


45
15 3 2 11 4 1 8 8 8 15 3 2 11 4 1 8 8 8 15 3 2 11 4 1 8 8 8 15 3 2 11 4 1 8 8 8
15 3 2 11 4 1 8 8 8
0

结果:
20
10
1
1
11
3
1251
322
20
30
24
276
6
5
64
454
20

[解决办法]
stick这题哪有那么简单。算法错得一塌糊涂。

热点排行