活動日記 day 35
活動内容 :
部活動紹介
コンテスト (チーム戦)
コンテスト : Virtual Arena: Room 3408
A - Water Rate
#include <iostream> #include <algorithm> using namespace std; int A = 0, B = 0; int C = 0, D = 0; int P = 0; int main(void){ cin >> A; cin >> B; cin >> C; cin >> D; cin >> P; int x = A * P; int y = (P <= C) ? B : B + D*(P-C); cout << min(x,y) << endl; }
B - Christmas Party
#include <iostream> #include <vector> using namespace std; int N = 0; int M = 0; int main(void){ cin >> N; cin >> M; vector<int> A(M, 0); vector<int> P(N, 0); int target = 0; int count = 0; int x = 0; int z = 0; for(int i=0; i<M; ++i){ cin >> A[i]; } for(int i=0; i<M; ++i){ target = A[i]; count = 0; for(int j=0; j<N; ++j){ cin >> x; if(x == target){ P[j] += 1; count++; } } P[target - 1] += (N - count); } for(int i=0; i<N; ++i){ cout << P[i] << endl; } }
C - Weather Forecaster
#include<iostream> using namespace std; int main(){ //scanf("%d",&n); int h,w; cin>>h>>w; char cloud[h][w]; for(int i=0;i<h;i++){ for(int j=0;j<w;j++){ cin>>cloud[i][j]; } } for(int i = 0; i < h; i++){ int j=0; while(cloud[i][j] != 'c'&&j<w){ cout << -1; j++; if(j<w){ cout<<" "; } } int count = 0; while(j<w){ if(cloud[i][j] == 'c'){ //int count = 0; count=0; cout<<count; } else{ count++; cout<<count; } j++; if(j<w){ cout<<" "; } } cout << endl; } //input finish return 0; }
D - Silk Road
#include <iostream> #include <algorithm> #include <climits> using namespace std; int N = 0, M = 0; int D[1000] = {0}; int C[1000] = {0}; int memo[1001][1001]; long dp(int i, int j){ if(memo[i][j] != -1){ return memo[i][j]; } if(j > M){ return memo[i][j] = INT_MAX; } if(i == N){ return memo[i][j] = 0; } long x = dp(i, j+1); long y = dp(i+1, j+1); if(x == INT_MAX && y == INT_MAX){ return memo[i][j] = INT_MAX; }else if(x == INT_MAX){ return memo[i][j] = C[j] * D[i] + y; }else if(y == INT_MAX){ return memo[i][j] = x; }else{ return memo[i][j] = min(x, C[j] * D[i] + y); } } int main(void){ fill(memo[0],memo[1000], -1); cin >> N >> M; for(int i=0; i<N; ++i){ cin >> D[i]; } for(int j=0; j<M; ++j){ cin >> C[j]; } cout << dp(0, 0) << endl; }
E - 3-Primes Problem
#include <iostream> #include <climits> #include <vector> using namespace std; int main() { int prime[1000]; for(int i=0;i<1000;i++){ prime[i]=1; } prime[0] = 0;// 1 is not prime for (int i = 0; i < 1000; i++) { if (prime[i] == 1) { //cout<<"hogehoge"<<endl; for (int j = (i + 1); (i + 1) * j <= 1000; j++) { prime[(i + 1) * j - 1] = 0; } } } int count = 0; for(int i = 0; i < 1000; i++){ if(prime[i] == 1){ count++; } } int number[count], n = 0; for(int i = 0; i < 1000; i++){ if(prime[i] == 1){ number[n] = i + 1; n++; } } int t=0; cin>>t; vector<int> a(t, 0); for(int i=0;i<t;i++){ cin>>a[i]; } for(int i=0;i<t;i++){ for(int j = 0; j < count; j++){ for(int k = 0; k < count; k++){ for(int l = 0; l < count; l++){ if(a[i] == number[j] + number[k] + number[l]){ cout << number[j] << " " << number[k] << " " << number[l] << endl; goto LABEL; } } } } LABEL: continue; } return 0; }