Atcoder Beginner Contest 076 参加した。

abc076.contest.atcoder.jp 114514年振りに投下しておく、Cで詰まってD問題考えてるうちに終わった。 A問かけてひくだけ #include <cstdio> int r, g; int main(){ scanf("%d %d", &r, &g); printf("%d\n", g * 2 - r); return 0; } B問2倍した場合とK足した場合で増</cstdio>…

AOJ 0072 Carden Lantern

灯篭 | Aizu Online Judge 最小全域木問題、114514810は何の関係もない #include <iostream> #include <numeric> #include <algorithm> using namespace std; int ma[100][100]; int main() { int n, m, a, b, d; char t; while (cin >> n) { if (n == 0) break; cin >> m; fill(ma[0], ma[</algorithm></numeric></iostream>…

AOJ 0071 Bombs Chain

爆弾の連鎖 | Aizu Online Judge (´・ω・`) #include <iostream> #include <string> using namespace std; bool map[8][8] = { 0 }; int siz[3] = { 1,2,3 }, dir[2][4] = { {1,0, -1,0},{0,1,0,-1} }; void bomb(int x, int y) { if (x < 0 || y < 0 || x >= 8 || y >= 8 || </string></iostream>…

AOJ 0070 Combination of Number Sequences

組み合わせの個数 | Aizu Online Judge 先に計算をしておく、s > 330 の場合はないので0個にしてしまう (最大の数1*0+2*1+3*2+4*3+5*4+6*5+7*6+8*7+9*8*10*9=330であるため) #include <iostream> using namespace std; int n, s, res[10][330] = { 0 }; bool num[10] =</iostream>…

AOJ 0069 Drawing Lots II

あみだくじ | Aizu Online Judge 各階層の両側に線がない('1000'の3つ目4つ目みたいな)とこに線があった場合のあみだくじを一番上の一番左から順に解いていった #include <iostream> #include <string> #include <numeric> #include <vector> using namespace std; #define PAIR pair<int, int> int lot[30</int,></vector></numeric></string></iostream>…

AOJ 0065 Trading

取引 | Aizu Online Judge 無駄に長いと思う #include <iostream> #include <string> #include <map> #include <vector> #include <algorithm> using namespace std; int a, b; void split(string s) { int tmp = 0, n = 0; for (int i = 0; i < s.size(); i++) { if (s[i] != ',') { tmp *= 10; tmp +=</algorithm></vector></map></string></iostream>…

AOJ 0064 Secret Number

暗証番号 | Aizu Online Judge #include <iostream> #include <string> using namespace std; int findNumber(string s) { int tmp = 0, res = 0; for (int i = 0; i < s.size(); i++) { if (0 <= s[i] - '0' && s[i] - '0' < 10) { tmp *= 10; tmp += s[i] - '0'; } else { re</string></iostream>…

AOJ 0063 Palindrome

回文 | Aizu Online Judge #include <iostream> #include <string> using namespace std; bool findPalindrome(string s) { for (int i = 0; i < s.size() / 2; i++) { if (s[i] != s[s.size() - i - 1]) return false; } return true; } int main() { string s; int c = 0; wh</string></iostream>…

AOJ 0062 What is the Bottommost?

一番下の数 | Aizu Online Judge なんか上手くいかなかったので文字列に入力してごり押しした #include <iostream> #include <string> using namespace std; int main() { string n; int a[10]; while (cin >> n) { for (int i = 0; i < 10; i++) a[i] = n[i] - '0'; for (int </string></iostream>…

AOJ 0061 Rank Checker

チームの順位 | Aizu Online Judge なんか、頭悪いコード書いたと思う #include <iostream> #include <vector> #include <algorithm> #include <functional> using namespace std; bool find(vector<int> v, int n) { for (int i = 0; i < v.size(); i++) { if (v[i] == n) return true; } return false; } </int></functional></algorithm></vector></iostream>…

AOJ 0060 Card Game

カードゲーム | Aizu Online Judge 残りカードを引いた時の合計が20以下になる場合の数を7.0で割った商が0.5(50%)以上ならYES #include <iostream> using namespace std; int main() { int c1, c2, c3; while (cin >> c1) { cin >> c2 >> c3; int c[10] = { 0 }, sum =</iostream>…

AOJ 0059 Intersection of Rectangles

長方形の重なり | Aizu Online Judge #include <iostream> using namespace std; int main() { double ax, ay, bx, by, cx, cy, dx, dy; while (cin >> ax >> ay >> bx >> by >> cx >> cy >> dx >> dy) { if (ax > dx || bx < cx || ay > dy || by < cy) { cout << "NO</iostream>…

AOJ 0058 Orthogonal

直交 | Aizu Online Judge 内積が0の場合直交している。 #include <cstdio> #include <cmath> using namespace std; #define EPS 1e-10 int main() { double ax, ay, bx, by, cx, cy, dx, dy; while (scanf("%lf %lf %lf %lf %lf %lf %lf %lf",&ax,&ay,&bx,&by,&cx,&cy,&dx,</cmath></cstdio>…

AOJ 0057 The Number of Area

最大の領域の数 | Aizu Online Judge n本の線を引いた時の領域の数はn-1本の線を引いた時の数とnの和と等しい #include <iostream> using namespace std; int main() { int n, a[10001] = { 0 }; a[0] = 1; for (int i = 1; i < 10001; i++) { a[i] = a[i - 1] + i; } </iostream>…

AOJ 0056 Goldbach's Conjecture

ゴールドバッハ予想 | Aizu Online Judge i番目とn-i番目の数が素数なら二つの和がnになるのでカウント #include <iostream> #include <numeric> using namespace std; #define SIZE 50001 int main() { bool prime[SIZE]; fill(prime, prime + SIZE, true); prime[0] = prime[1</numeric></iostream>…

AOJ 0054 Sum of Nth decimal places

小数の和 | Aizu Online Judge #include <iostream> using namespace std; int main() { int a, b, n; while (cin >> a) { cin >> b >> n; int sum = 0; for (; n-- > 0;) { a = a % b * 10; sum += a / b; } cout << sum << endl; } return 0; }</iostream>

AOJ 0053 Sum of Prime Numbers

素数の和 | Aizu Online Judge n個の素数を足すまでwhile文を回しただけ。 #include <iostream> #include <numeric> using namespace std; int main() { bool prime[1000000]; fill(prime, prime + 1000000, true); prime[0] = prime[1] = false; for (int i = 2; i * i < 10000</numeric></iostream>…

AOJ 0052 Factorial II

n の階乗 | Aizu Online Judge 因数5がいくつか計算する #include <iostream> using namespace std; int main() { int n; while (cin >> n) { if (n == 0) break; int i = 0; while (n /= 5) i += n; cout << i << endl; } return 0; }</iostream>

AOJ 0046 Differential

標高差 | Aizu Online Judge そのまんま、 #include <iostream> using namespace std; int main(){ double n, ma = 0, mi = 1000000; while (cin >> n) { if (n > ma) ma = n; if (n < mi) mi = n; } cout << (ma - mi) << endl; return 0; }</iostream>

AOJ 0045 Sum and Average

合計と平均 | Aizu Online Judge 自分で四捨五入する関数書いたらエラー吐かれたのでしぶしぶstl使った... #include <iostream> #include <cmath> using namespace std; int main() { int n, w, sum = 0, i = 0; double ws = 0; char t; while (cin >> n) { cin >> t >> w; i+</cmath></iostream>…

AOJ 0044 Prime Number II

最小の素数と最大の素数 | Aizu Online Judge エラトステネスの篩で素数判定をした後に探索、愚鈍なコードを書いたと思う(numericインクルードしとけばfill仕えたのか...) #include <iostream> #include <numeric> using namespace std; int main() { bool prime[100000]; fil</numeric></iostream>…

AOJ 0043 Puzzle

パズル | Aizu Online Judge 1~9まで探索し、刻子か順子をできる場合にその牌を取り除いて最終的に同じ牌が二つあればiの数字を足したときにパズルができるという判定(麻雀の話) #include <iostream> #include <string> #include <vector> using namespace std; int tmp[10]; bool s</vector></string></iostream>…

AOJ 0042 A Thief

泥棒 | Aizu Online Judge動的計画法の片鱗を味わった、二重for文でi番目の品物が重さjより軽ければ入れない場合と入れる場合で価値の高い方を選ぶ(dp[i-1][j-w[i]]≠0の時これまで入れた物との合計になる) #include <iostream> #include <algorithm> using namespace std; #defi</algorithm></iostream>…

AOJ 0041 Expression

数式 | Aizu Online Judge順列を作るのが一番悩んだ(低能) #include <iostream> #include <cstdio> using namespace std; #define FOR(i, a, b) for(int i = a; i < b; i++) #define REP(a, b) FOR(a, 0, b) char opr[3] = { '+','-','*' }; int calc(int a, int b, int c) {</cstdio></iostream>…

AOJ 0040 Affine Cipher

アフィン暗号 | Aizu Online Judge αとβの値をα,β > 0の範囲で総当たりして解いた(今のテストケースだとαもβも27ぐらいまでに絞れる)REPマクロ初めて書いた #include <iostream> #include <string> using namespace std; #define rep(a, b, i) for(int i = a; i < b; i++) char</string></iostream>…

AOJ 0039 Roman Figure

ローマ数字 | Aizu Online Judge何でもいい(何でもいいとは言っていない)ある程度大きな数を適当に決めるとき114514にする癖がついた、そのうちに治そう... #include <iostream> #include <string> #include <map> using namespace std; int main() { map<char, int> m; m['I'] = 1; m['V'] =</char,></map></string></iostream>…

AOJ 0038 Poker Hand

ポーカー | Aizu Online Judge分岐だけ、 #include <iostream> #include <cstdio> #include <string> using namespace std; string pairs[2][3] = { {"null","one pair","two pair"}, {"three card","full house",""} }; int main() { int n[5], c, three, two; while (scanf("%d,%d,%d</string></cstdio></iostream>…

c++の勉強を始めた

Aizu Online Judgeにある問題を解くことでc++を書ける人を目指そうと思う、 解いた問題のコードはGitHubで公開していく(どうせここにも書くのだが) github.com 頑張るぞい。