はい。
AtCoder Beginner Contest 002
D問題追記しました。
A - 正直者
#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0;i<n;++i)
#define per(i,n) for(int i=n-1;i>=0;--i)
#define sc1(a) scanf("%d",&a)
#define sc2(a,b) scanf("%d %d",&a,&b)
#define sc3(a,b,c) scanf("%d %d %d",&a,&b,&c)
#define sl1(a) scanf("%lld",&a)
#define sl2(a,b) scanf("%lld %lld",&a,&b)
#define sl3(a,b,c) scanf("%lld %lld %lld",&a,&b,&c)
#define PI 3.1415926535897932
#define ll long long
#define print(a) cout << a << endl
int souwa(int a) {return (1+a)*a/2;}
int lcm(int a,int b) { return a*b/__gcd(a,b); }
bool sankaku(int a,int b,int c) {vector <int> t={a,b,c};sort(t.begin(),t.end()); return t.at(0)+t.at(1)>t.at(2);};
int main(){
int mod=1000000007;
int n,m,x,y,cnt=0,ans=0;
string s,t;
cin >> x >> y;
cout << ((x>y)?x:y) << endl;
return 0;
}
大小比較します。
B - 罠
#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0;i<n;++i)
#define per(i,n) for(int i=n-1;i>=0;--i)
#define sc1(a) scanf("%d",&a)
#define sc2(a,b) scanf("%d %d",&a,&b)
#define sc3(a,b,c) scanf("%d %d %d",&a,&b,&c)
#define sl1(a) scanf("%lld",&a)
#define sl2(a,b) scanf("%lld %lld",&a,&b)
#define sl3(a,b,c) scanf("%lld %lld %lld",&a,&b,&c)
#define PI 3.1415926535897932
#define ll long long
#define print(a) cout << a << endl
int souwa(int a) {return (1+a)*a/2;}
int lcm(int a,int b) { return a*b/__gcd(a,b); }
bool sankaku(int a,int b,int c) {vector <int> t={a,b,c};sort(t.begin(),t.end()); return t.at(0)+t.at(1)>t.at(2);};
int main(){
int mod=1000000007;
int n,m,x,y,cnt=0,ans=0;
string s,t;
cin >> s;
t="aiueo";
rep(i,s.size()) {
cnt=0;
rep(j,5) if (s.at(i)==t.at(j)) cnt=1;
if (cnt==0) cout << s.at(i);
}
cout << endl;
return 0;
}
1文字ずつ母音5個毎回チェックしました。
C - 直訴
#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0;i<n;++i)
#define per(i,n) for(int i=n-1;i>=0;--i)
#define sc1(a) scanf("%d",&a)
#define sc2(a,b) scanf("%d %d",&a,&b)
#define sc3(a,b,c) scanf("%d %d %d",&a,&b,&c)
#define sl1(a) scanf("%lld",&a)
#define sl2(a,b) scanf("%lld %lld",&a,&b)
#define sl3(a,b,c) scanf("%lld %lld %lld",&a,&b,&c)
#define PI 3.1415926535897932
#define ll long long
#define print(a) cout << a << endl
int souwa(int a) {return (1+a)*a/2;}
int lcm(int a,int b) { return a*b/__gcd(a,b); }
bool sankaku(int a,int b,int c) {vector <int> t={a,b,c};sort(t.begin(),t.end()); return t.at(0)+t.at(1)>t.at(2);};
double hen(int x1, int y1, int x2, int y2) {
double z;
if(x1==x2) z=abs(y1-y2);
else if(y1==y2) z=abs(x1-x2);
else z=pow((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2),0.5);
return z;
}
int main(){
int mod=1000000007;
int x1,x2,x3,y1,y2,y3,n,m,cnt=0,ans=0;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
double x=hen(x1,y1,x2,y2);
double y=hen(x3,y3,x2,y2);
double z=hen(x1,y1,x3,y3);
double p=(x+y+z)/2.0;
printf("%.10lf\n",(pow((p*(p-x)*(p-y)*(p-z)),0.5)));
return 0;
}
3辺の長さ調べてヘロンの公式で。これはテンプレートに入れようか。
D - 派閥
#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0;i<n;++i)
#define per(i,n) for(int i=n-1;i>=0;--i)
#define sc1(a) scanf("%d",&a)
#define sc2(a,b) scanf("%d %d",&a,&b)
#define sc3(a,b,c) scanf("%d %d %d",&a,&b,&c)
#define sl1(a) scanf("%lld",&a)
#define sl2(a,b) scanf("%lld %lld",&a,&b)
#define sl3(a,b,c) scanf("%lld %lld %lld",&a,&b,&c)
#define PI 3.1415926535897932
#define ll long long
#define print(a) cout << a << endl
int souwa(int a) {return (1+a)*a/2;}
int lcm(int a,int b) { return a*b/__gcd(a,b); }
bool sankaku(int a,int b,int c) {vector <int> t={a,b,c};sort(t.begin(),t.end()); return t.at(0)+t.at(1)>t.at(2);};
int main(){
int n,m,x,y,z,cnt=0,ans=0;
cin >> n >> m;
vector<vector<bool>> w(n,vector<bool>(n));
rep(i,n) rep(j,n) w.at(i).at(j)=(i==j);
rep(i,m) {
cin >> x >> y;
x--; y--;
w.at(x).at(y)=1;
w.at(y).at(x)=1;
}
for (int i=0;i<(2<<(n-1));i++){
z=0;
vector<bool> kouho(n,0);
rep(j,n) {
kouho.at(j) = ((i>>j)&1);
z+=kouho.at(j)-0;
}
cnt=1;
rep(j,n) rep(k,n) {
if (kouho.at(j) && w.at(j).at(k)<kouho.at(k)) cnt=0;
}
if (cnt) ans=max(ans,z);
}
print(ans);
return 0;
}
0から2のN乗 - 1のループを回す。2進数にすると101101とかになるのを派閥に入る・入らないの場合分けに利用する。
それぞれの知り合い関係はメモしてあるはず。
調べるときは派閥に入る人同士のリストはみんな同じとこに1が立ってるはず。立っていないとみんなお互いに知り合いにならないので。
ただし1番さんだけ知り合いが多いので派閥に入ってない知り合いがいる、より多く1が立ってる場合もある。これは特にチェックする必要ありませんけど。
お互いに知り合いチェックを無事に完走したら派閥人数をよしなに。