情報オリンピック 第6回予選問題

JOI 2006-2007 予選 問題・データ

1. 得点 AOJ 0510 Score

404 Not Found

#include <cstdio>
#include <algorithm>
using namespace std;
int main()
{
	int A = 0, B = 0;
	for(int i = 0, t; i < 4; i++)
		scanf("%d\n", &t), A += t;
	for(int i = 0, t; i < 4; i++)
		scanf("%d\n", &t), B += t;
	printf("%d\n", max(A, B));

}

2. 未提出者は誰だ AOJ 0511 Who Are The Student Yet To Submit

404 Not Found

#include <cstdio>
#include <set>
using namespace std;
int main()
{
	set<int> se;
	for(int i = 1; i <= 30; i++) se.insert(i);
	for(int i = 0, t; i < 28; i++)
		scanf("%d\n", &t), se.erase(t);
	for(set<int>::iterator it = se.begin(); it != se.end(); it++)
		printf("%d\n", *it);
	return 0;
}

3. シーザー暗号AOJ 0512 Caesar Cipher

404 Not Found

#include <iostream>
#include <string>
using namespace std;
int main()
{
	string s;
	cin>>s;
	for(string::iterator it = s.begin(); it != s.end(); it++){
		char c = *it - 'D' + 'A';
		if(c < 'A') c = c - 'A' + 'Z' + 1;
		cout<<c;
	}
	cout<<endl;
	return 0;
}

4. カードの並び替え AOJ 0513 Shuffle The Cards

404 Not Found

#include <cstdio>
#include <vector>
using namespace std;
inline vector<int> shuffle(vector<int>& v){
	vector<int> w;
	int n = v.size() / 2;
	for(int i = 0; i < n; i++){
		w.push_back(v[i]);
		w.push_back(v[i + n]);
	}
	return w;
}
inline vector<int> cut(vector<int>& v, int k){
	vector<int> w;
	for(int i = k; i < v.size(); i++)
		w.push_back(v[i]);
	for(int i = 0; i < k; i++)
		w.push_back(v[i]);
	return w;
}
int main(){
	int n, m;
	scanf("%d\n%d\n", &n, &m);
	vector<int> v(2 * n);
	for(int i = 0; i < 2 * n; i++) v[i] = i + 1;
	for(int i = 0; i < m; i++){
		int k;
		scanf("%d\n", &k);
		if(k == 0){
			v = shuffle(v);
		}else{
			v = cut(v, k);
		}
	}
	for(int i = 0; i < v.size(); i++){
		printf("%d\n", v[i]);
	}
	return 0;
}

5. 品質検査 AOJ 0514 Quality Checking

404 Not Found

Not Solved

6. 通学経路 AOJ 0515 School Road

404 Not Found

AOJ 0515 School Road - ペリャウドのプログラミングとか
時間があったらまた解く。