はやし屋

競技プログラミングのメモ きたない

JOI予選2006やってみた

C縛り

1.得点 AOJ0510
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0510

やる

#include<stdio.h>
 
int i,in,a,b;
int main(){
  for(;i++<4;b+=in)scanf("%d",&in);
  for(;i++<4;a+=in)scanf("%d",&in);
  printf("%d\n",a>b?a:b);
  return 0;
}

2.未提出者は誰だ AOJ0511
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0511

きたない

#include<stdio.h>
  
int main(){
  int i,in,res[33] = {};
  for(;~scanf("%d",&in);res[in]++);
  for(i=0;++i^31;)!res[i]&&printf("%d\n",i);
}

3.シーザー暗号 AOJ0512
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0512

きたない

#include<stdio.h>
#include<string.h>
 
int main(){
  char s[1111];
  scanf("%s",s);
  int i , len = strlen(s);
  for(i=0;i<len;++i){
    int co = s[i]-3;
    putchar(co>='A'?co:co+26);
  }
  putchar('\n');
}

4.カードの並び替え AOJ0513
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0513

きたない

#include<stdio.h>
 
int main(){
  int card[111*2] , new[111*2];
  int i, n , Q , k;
  scanf("%d%d",&n,&Q);
  for(i=0;i<2*n;++i)card[i] = i+1;
  while(Q--){
    scanf("%d",&k);
    if(k){
      for(i=0;i<2*n-k;++i)new[i] = card[i+k];
      for(i=0;i<k;++i)new[i+2*n-k] = card[i];
    } else {
      for(i=0;i<n;++i){
	new[i*2] = card[i]; 
	new[i*2+1] = card[n+i];
      }
    }
    for(i=0;i<2*n;++i)card[i] = new[i];
  }
  for(i=0;i<2*n;++i)printf("%d\n",card[i]);
  return 0;
}


5.品質検査 AOJ0514
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0514

きたない

#include<stdio.h>
 
int data[3][1111],type[1111];
int out[333];
 
int main(){
 
  int a , b , c , n , j , i;
 
  while(scanf("%d%d%d%d",&a,&b,&c,&n)&&(a|b|c)){
    for(i=0;i<333;++i)out[i] = 2;
 
    for(i=0;i<n;++i){
      for(j=0;j<3;++j)scanf("%d",data[j]+i);
      scanf("%d",type+i);
      if(type[i]){
	for(j=0;j<3;++j)out[data[j][i]] = 1;
      }
    }
    for(i=0;i<n;++i){
      if(!type[i]){
	int q = data[0][i] , w = data[1][i] , e = data[2][i];
	if(out[q] == 1 && out[w] == 1)out[e] = 0;
	if(out[e] == 1 && out[q] == 1)out[w] = 0;
	if(out[w] == 1 && out[e] == 1)out[q] = 0;
      }
    }
    for(i=1;i<=a+b+c;++i){
      printf("%d\n",out[i]);
    }
  }
}

きたない