点击打开链接
明天就愚人了,学长在开玩笑啊
A
水
#include"stdio.h" #include"string.h" #include"stdlib.h" struct node { int a; }aa[100001]; int cmp(const void*a,const void*b) { return (*(struct node*)b).a-(*(struct node*)a).a; } int main() { int n,m,i; while(scanf("%d%d",&n,&m)!=-1) { if(n==0&&m==0)break; for(i=0;i<n;i++) scanf("%d",&aa[i].a); qsort(aa,n,sizeof(aa[0]),cmp); if(m>n)m=n; for(i=0;i<m-1;i++) printf("%d ",aa[i].a); printf("%d\n",aa[i]); } return 0; }
B
水
#include"stdio.h" int main() { char s,ss; int ans; int i,n; scanf("%d",&n); ans=0; getchar(); scanf("%c",&s); for(i=1;i<n;i++) { scanf("%c",&ss); if(ss==s)ans++; s=ss; } printf("%d\n",ans); return 0; }
C
水
#include"stdio.h" int main() { int n,ans,i; char str[5]; scanf("%d",&n); getchar(); ans=0; for(i=0;i<n;i++) { gets(str); if(str[0]=='X') { if(str[1]=='-')ans--; else if(str[1]=='+')ans++; } else if(str[0]=='+')ans++; else if(str[0]=='-')ans--; } printf("%d\n",ans); return 0; }
D
水,唯一的一个难点是文件输入输出!
#include"stdio.h" int main() { freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); char s,ss; int n,m,i,j; scanf("%d%d",&n,&m); i=j=0; if(n<=m) { s='G';ss='B'; } else { s='B';ss='G'; } while(i<n&&j<m) { printf("%c%c",s,ss); i++;j++; } while(i<n) { printf("B");i++; } while(j<m) { printf("G");j++; } printf("\n"); return 0; }
E
水
#include"stdio.h" int main() { int n,k,t,i; char str[51]; scanf("%d%d",&n,&k); getchar(); gets(str); t=0; while(k>0) { k--; for(i=0;str[i];i++) { if(str[i]=='B'&&str[i+1]=='G') { str[i]='G';str[i+1]='B';i++; } } } puts(str); return 0; }
学长在开玩笑啊,
这题看起来有点难,刚开始没明白题目意思,后来才发现是对字符串中的任意两个字符进行异或运算和或运算,然后用得到的两个结果替换原来的两个字符。
很明显:
11-----01或10
01-----11
10-----11
00-----00;
很明显可以把11,01,10转换成11,10,01,00;
即:只要有1就可以转换成任意的01组合;
所以只需判断两个字符串中是否有1就可以了;
注意在判断之前需要判断两个字符串的长短是否相同。。。
#include"stdio.h" #include"string.h" char a[1000001]; char b[1000001]; int main() { int n,m,i; scanf("%s",a); scanf("%s",b); n = strlen(a); m = strlen(b); if (n != m) printf("NO\n"); else { int x,t; x=t=0; for(i=0;i<n;i++) if(a[i]=='1')x=1; for(i=0;i<m;i++) if(b[i]=='1')t=1; if((x==1&&t==1)||(x==0&&t==0))printf("YES\n"); else printf("NO\n"); } return 0; }