PCK2015プログラミング部門予選に参加した話
5完
こんにちは。kurokojiです。
今回、PCK2015プログラミング部門の予選にチーム「\x00」として緑林檎先輩と参加しました。
一番最初に書いてあるように5完です。
とりあえずやったことを書いていきます。
ぼく:問1,2,3を先輩の言葉を頂きながら解く。
問1
#include <stdio.h> int main(void) { int p, m, c; scanf("%d %d %d", &p, &m, &c); printf("%d\n", p + m + c); return (0); }
問2
#include <stdio.h> int main(void) { int h, h1, h2; int k, k1, k2; int a, b, c, d; scanf("%d %d", &h1, &h2); scanf("%d %d", &k1, &k2); scanf("%d %d %d %d", &a, &b, &c, &d); h = h1 * a + h2 * b + (h1 / 10) * c + (h2 / 20) * d; k = k1 * a + k2 * b + (k1 / 10) * c + (k2 / 20) * d; if (h > k){ printf("hiroshi\n"); } else if (h < k){ printf("kenjiro\n"); } else { printf("even\n"); } return (0); }
問3
#include <stdio.h> int main(void) { int D, L; scanf("%d %d", &D, &L); printf("%d\n", (D % L) + (D / L) ); return (0); }
緑林檎先輩:問4,5を解く。問5において、デバッグ(?)に時間がかかった。
問4
#include <stdio.h> int N[100][3]; int main(void) { int n, x; int i, j; int d; int t = 0; scanf("%d", &n); for (j = 0; j < 3; j++){ scanf("%d", &x); for (i = 0; i < x; i++){ scanf("%d", &d); N[d - 1][j] = 1; } } for (i = 0; i < n; i++){ if ((N[i][0] != 1 && N[i][2] == 1) || (N[i][1] == 1 && N[i][2] == 1)){ t++; } } printf("%d\n", t); return (0); }
問5
#include <stdio.h> int p[100]; int main(void) { int n; int max = 0; int c; int i, j; scanf("%d", &n); for (i = 0; i < n; i++){ scanf("%d", &p[i]); } for (j = n; j >= 0; j--){ c = 0; for (i = 0; i < n; i++){ if (j <= p[i]){ c++; } } if (j <= c){ max = j; break; } } printf("%d\n", max); return (0); }
問6~10が上位との分かれ目になるだろう(実行時間に制限がある)。
問6「品質管理」では、実行時間を縮めるやり方を見つけられず断念。
問7にも触れたが時間が無かった。
予選を通して感じたのは、国語力(読解力)不足だったことです。
次回は6完以上出来るように、問題点である読解力不足をAOJ等の問題をたくさん解き、慣れるようにしたいです。