JOI2006予選
練習で過去問解いた。時間内には5完しかできませんでした。
以下ソース
//AOJ0510 #include<iostream> #include<cstdio> using namespace std; int main(){ int a,b,c,d,e,f,g,h,i,j; scanf("%d %d %d %d %d %d %d %d",&a,&b,&c,&d,&e,&f,&g,&h); i = a + b + c + d; j = e + f + g + h; if(i >= j)printf("%d\n", i); else printf("%d\n", j); return 0; }
//AOJ0511 #include<iostream> #include<cstdio> using namespace std; int main(){ int a; bool p[30]; fill(p,p+30,false); for(int i = 0; i < 28;i++){ scanf("%d", &a); p[a-1] = true; } for(int i = 0; i < 30; i++){ if(!p[i]) printf("%d\n", i+1); } return 0; }
//AOJ0512 #include<iostream> #include<cstdio> #include<string> using namespace std; int main(){ string s; getline(cin,s); for(int i = 0; i < s.size();i++){ char c = s[i] - 'D' + 'A'; if(c < 'A') c = s[i] - 'A' + 'X'; printf("%c", c); } printf("\n"); return 0; }
//AOJ0513 #include<iostream> #include<cstdio> #include<vector> using namespace std; vector<int> s(vector<int>& v){ int n = v.size()/2; vector<int> ans; for(int i = 0; i < n;i++){ ans.push_back(v[i]); ans.push_back(v[i+n]); } return ans; } vector<int> c(vector<int>& v, int k){ vector<int> ans; for(int i = k; i < v.size();i++){ ans.push_back(v[i]); } for(int i = 0; i < k;i++){ ans.push_back(v[i]); } return ans; } int main(){ int n,m,p; scanf("%d %d", &n, &m); vector<int> v(n * 2); for(int i = 0; i < n * 2;i++){ v[i] = i + 1; } for(int i = 0; i < m;i++){ scanf("%d", &p); if(p == 0){ v = s(v); }else { v = c(v,p); } } for(int i = 0; i < n * 2; i++){ printf("%d\n", v[i]); } return 0; }
//AOJ0515 #include<iostream> #include<cstdio> using namespace std; int a,b,n, p,q; int dp[16][16]; int main(){ while(scanf("%d %d", &a,&b) && (a || b)){ a--;b--; scanf("%d",&n); for(int i = 0; i <= a; i++){ for(int j = 0;j <= b;j++){ dp[i][j] = 1; } } for(int i = 0; i < n;i++){ scanf("%d %d",&p,&q); p--;q--; dp[p][q] = 0; } for(int i = 1; i <= a;i++){ for(int j = 1; j <= b;j++){ if(dp[i][j] != 0){ dp[i][j] = dp[i-1][j] + dp[i][j-1]; } } } printf("%d\n", dp[a][b]); } return 0; }