kotonoha_pcg@ぷろこんにっき

ここ(http://kotonoha-pcg.hatenablog.com/)の別館です、競プロの話が殆どです。最近mdモードに変えて一気に使い勝手が変わりました。

強化週間・・・?

 何を思ったか強化週間と位置づけてAOJ解いてます.久々に1日で4問以上解いてる・・・

0608 Water Rate

 去年の一問目です.ちゃんと条件を読めば60点なんて取るはずが無いですねw

#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0;i<n;i++)
int main()
{
	int a,b,c,d,p;
	cin>>a>>b>>c>>d>>p;
	int ans=0, diff=0, com=0;
	ans=p*a;
	diff=b;
	if(p>c){
		int cnt=p-c;
		com=cnt*d;
		diff+=com;
	}
	if(diff>ans){ cout<<ans<<endl;
	}else if(diff<ans){ cout<<diff<<endl;}
	return 0;
}

 一回提出して,CEを貰ったので修正して再度提出しなおしました.たしかCとDとの関係を全く書き間違えていました.

0554 Total Time

 全部足して60で除算と剰余.

#include <iostream>
using namespace std;
int main(){
	int a,b,c,d; cin>>a>>b>>c>>d;
	int ans=a+b+c+d;
	cout<<ans/60<<endl;
	cout<<ans%60<<endl;
	return 0;
}

0565 Lunch

 ものすごくグチャグチャなコードになってしまった.もう少しいいやり方あるだろコレ

#include  <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0;i<n;i++)
#define pb push_back
int main()
{
	vector<int> a;
	vector<int> b;
	vector<int> ans;
	int cnt=0;
 rep(i,3){
		int x;
		cin>>x;
		a.pb(x);
	}
 rep(i,2){
		int x;
		cin>>x;
		b.pb(x);
	}
	sort(a.begin(), a.end());
	sort(b.begin(), b.end());
	cout<<(a[0]+b[0])-50<<endl;
	return 0;
}

確か去年に過去問をCで解こうとしていた時は全く解らず解説を乞っても意味不明だったのですが,そんなに難しくなかった.ソートが使えたのが最大の利点かも.それぞれの最小値を足して引いて投げれば○.

0576 Homework

 今回最大の面倒くさかった問題かもしれない.何回か計算の分岐に嵌った.しかも最大に汚い.

#include <bits/stdc++.h>
using namespace std;

#define rep(i,n) for(int i=0;i<n;i++)
#define MAX 100

int main()
{
	int l,a,b,c,d;
	cin>>l>>a>>b>>c>>d;
	int ans=0, diff=0;
	if(a%c==0){
		ans=a/c;
	}else{
		ans=a/c+1;
	}
	if(b%d==0){
		diff=b/d;
	}else{
		diff=b/d+1;
	}
	if(ans>diff){
		cout<<l-ans<<endl;
	}else{
		cout<<l-diff<<endl;
	}
	return 0;
}

もう少し解いたら寝ることにしたい.昨日の21時に寝てついさっき7時ころに起きたのだけれど,既に眠たさが込み上がってきてる.流石に18時とかに寝て試験遅れるのは勘弁なので程々にします.