読者です 読者をやめる 読者になる 読者になる

Codeforces初参戦の回

Codeforces413

A . Carrot Cakes

1分ごとに出来たケーキをカウント
新オーブンが1セットケーキを完成させた時間に必要数を完成させきっているかどうかで判定した
最初いろいろやってたらWA出てそのままグチャグチャしたのでchkという意味のない変数が残ってる

#include<iostream>
using namespace std;
int main(){
  int n,t,k,d,cnt=0,chk=0,tt=0;
  cin>>n>>t>>k>>d;
  for(int i=1;cnt<=n;++i){
    if(i%t==0){
      cnt+=k;
      chk++;
    }
    if(i==d+t&&cnt<n) tt=1;
  }
  if(tt) cout<<"YES\n";
  else cout<<"NO\n";
  return 0;
}

他の人の見て書いたコード
(n+k-1)/kでn/kの小数値繰り上げした値が貰えるらしい

#include<bits/stdc++.h>
using namespace std;
int main(){
  int n,t,k,d;
  cin>>n>>t>>k>>d;

  int a = ((n+k-1)/k)*t;
  if(a>d+t) cout<<"YES\n";
  else cout<<"NO\n";
  return 0;
}

B. T-shirt buying

TLE出て答えがあってるのかすらわかりませんでした
一応コード

#include<iostream>
using namespace std;
int main(){
  int n,m,i,j;
  int price,chk;
  int p[200001]={},a[200001]={},b[200001]={},c[200001]={};
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin>>n;
  for(i=0;i<n;++i)
    cin>>p[i];
  for(i=0;i<n;++i)
    cin>>a[i];
  for(i=0;i<n;++i)
    cin>>b[i];
  cin>>m;
  for(i=0;i<m;++i){
    cin>>c[i];
    price=1e9+1;
    chk=999;
    for(j=0;j<n;++j){
      if(c[i]==a[j]||c[i]==b[j]){
	if(price>p[j]){
	  price=p[j];
	  chk=j;
	}
      }
    }
    a[chk]=b[chk]=0;
    if(chk==999) cout<<"-1 ";
    else cout<<price<<" ";
  }
  cout<<endl;
  return 0;
}

B問題通らないまま終わった瞬間
僕は睡眠時間を削って何をやっているんだろうと思った
f:id:pastalian:20170512104816p:plain