ABC 002
A問題
#include <bits/stdc++.h> #define REP(i,n) for(int i=0; i<(int)(n); ++i) #define FOR(i,k,n) for(int i=(k);i<(int)(n);++i) typedef long long int ll; using namespace std; int main(void) { int a, b; cin >> a >> b; cout << max(a, b) << endl; }
Submission #1024114 - AtCoder Beginner Contest 002 | AtCoder
B問題
#include <bits/stdc++.h> #define REP(i,n) for(int i=0; i<(int)(n); ++i) #define FOR(i,k,n) for(int i=(k);i<(int)(n);++i) typedef long long int ll; using namespace std; int main(void) { string W; cin >> W; REP(i, W.size()) { if(W[i] != 'a' && W[i] != 'i' && W[i] != 'u' && W[i] != 'e' && W[i] != 'o') { cout << W[i]; } } cout << endl; }
Submission #1024115 - AtCoder Beginner Contest 002 | AtCoder
C問題
ヘロンの公式
#include <bits/stdc++.h> #define REP(i,n) for(int i=0; i<(int)(n); ++i) #define FOR(i,k,n) for(int i=(k);i<(int)(n);++i) typedef long long int ll; using namespace std; int main(void) { int x[3], y[3]; REP(i, 3) cin >> x[i] >> y[i]; double a = sqrt(pow(x[0] - x[1], 2.0) + pow(y[0] - y[1], 2.0)); double b = sqrt(pow(x[1] - x[2], 2.0) + pow(y[1] - y[2], 2.0)); double c = sqrt(pow(x[2] - x[0], 2.0) + pow(y[2] - y[0], 2.0)); double s = (a+b+c)/2.0; printf("%.3f\n", sqrt(s*(s-a)*(s-b)*(s-c))); }
D問題
ビット全探索で最大クリークを求める。
bitset
とかいう便利ライブラリがあることを知った。
#include <bits/stdc++.h> #define REP(i,n) for(int i=0; i<(int)(n); ++i) #define FOR(i,k,n) for(int i=(k);i<(int)(n);++i) typedef long long int ll; using namespace std; int main(void) { int N, M; cin >> N >> M; vector<vector<int> > e(N, vector<int>(N, 0)); REP(i, M) { int x, y; cin >> x >> y; --x; --y; e[x][y] = e[y][x] = 1; } int ans = 0; for(int bit=1; bit<(1<<N); ++bit) { int t = bitset<12>(bit).count(); if(t <= ans) continue; bool flag = true; REP(i, N) { REP(j, i) { if((bit >> i & bit >> j & 1) && e[i][j] != 1) { flag = false; } } } if(flag) ans = t; } cout << ans << endl; }
Submission #1024133 - AtCoder Beginner Contest 002 | AtCoder