2013年11月7日木曜日

JOI予選2006

1.得点 AOJ0510

#include<iostream>
#include<algorithm>
using namespace std;
int main(){
  int A = 0, B = 0, in;
  for(int i = 0; i < 4; i++, A += in) cin >> in;
  for(int i = 0; i < 4; i++, B += in) cin >> in;
  cout << max( A, B) << endl;
}
足して比べるだけ(小並感)


2.未提出者は誰だ

#include<iostream>
using namespace std;
int main(){
  bool ok[31] = {};
  for(int i = 0, in; i < 28; i++){
    cin >> in;
    ok[in] = true;
  }
  for(int i = 1; i < 30; i++){
    if(!ok[i]) cout << i << endl;
  }
}
やるだけ。


シーザー暗号

#include<iostream>
#include<string>
using namespace std;
int main(){
  string str;
  cin >> str;
  for(int i = 0; i < str.size(); i++){
    cout << (char)((str[i] - 'A' + 23) % 26 + 'A');
  }
  cout << endl;
}
ちょっと迷ったけど気にせず出力。


カードの並べ替え

#include<iostream>
using namespace std;
int main(){
  int n, m, k, card[200], next[200];
  cin >> n >> m;
  for(int i = 0; i < 2*n; i++) card[i] = i + 1;
  while(m--){
    cin >> k;
    if(!k){ //リシャッフル
      for(int i = 0; i < n; i++){
        next[i*2] = card[i];
        next[i*2+1] = card[n+i];
      }
    }else{ //カット
      for(int i = 0; i < k; i++) next[i+2*n-k] = card[i];
      for(int i = k; i < 2*n; i++) next[i-k] = card[i];
    }
    for(int i = 0; i < 2*n; i++) card[i] = next[i];
  }
  for(int i = 0; i < 2*n; i++) cout << card[i] << endl;
}
眠くなってきたのでちょっとバグらせた。やるだけ。


品質検査

#include<iostream>
#include<algorithm>
using namespace std;
int main(){
  int a, b, c, N , data[1000][4], flg[301] , cnt;

  while(cin >> a >> b >> c , a+b+c){
    fill_n(flg,301,2), cnt = 0;
    cin >> N;
    for(int i = 0; i < N; i++, cnt++){
      for(int j = 0; j < 4; j++) cin >> data[cnt][j];
      if(data[cnt][3]){
        for(int j = 0; j < 3; j++) flg[data[cnt][j]] = 1;
        cnt--;
      }
    }
    for(int i = 0; i < cnt; i++) for(int j = 0; j < 3; j++){
        if(flg[data[i][j]] == 1 && flg[data[i][(j+1)%3]] == 1){
          flg[data[i][(j+2)%3]] = 0;
        }
      }
    for(int i = 1; i <= a+b+c; i++) cout << flg[i] << endl;
  }
}
貪欲法。2つ正常ならもう1つは故障。
寝る。

0 件のコメント:

コメントを投稿