結果
問題 | No.804 野菜が苦手 |
ユーザー | Micc |
提出日時 | 2019-03-22 21:31:32 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 2,809 bytes |
コンパイル時間 | 1,262 ms |
コンパイル使用メモリ | 158,568 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-19 02:52:08 |
合計ジャッジ時間 | 1,881 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
ソースコード
#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef long double ld;#define rep(i, n) for (ll i = 0; i < n; i++)#define FOR(i, a, b) for (ll i = a; i < b; i++)#define is(a, b) a == b#define len(v) ll(v.size())const ll INF = 1LL << 58;class UnionFind{public:vector<int> par;//親の番号vector<int> rank;//木の深さUnionFind(int n){//全ての要素に対して自身が根となるように初期化, 木の深さは0になるrep(i,n){par.push_back(i);rank.push_back(0);}}int find(int x) {//木の根を求めるif(par[x]==x){return x;}else{return par[x]=find(par[x]);}}void unite(int x,int y){//xとyの属する集合を併合x=find(x);y=find(y);if(x==y) return;if(rank[x]<rank[y]){//木の深さが小さい方を大きい方へ繋げるpar[x]=y;}else{par[y]=x;if(rank[x]==rank[y]) rank[x]++;}}bool same(int x,int y){//xとyが同じ集合に属するか否かreturn find(x)==find(y);}};//x以下の要素への最小index, ソートしてから使ってねtemplate <class T>int former(const vector<T> &v, T x){return upper_bound(v.begin(), v.end(), x) - v.begin() - 1;}//x以上の要素への最小indextemplate <class T>int latter(const vector<T> &v, T x){return lower_bound(v.begin(), v.end(), x) - v.begin();}//vector書き出しtemplate <class T>void cout_vec(const vector<T> &vec1){rep(i,len(vec1)){cout<<vec1[i]<<' ';}cout<<'\n';}//nCktemplate <class T>T comb(T n,T k){T ans=1;FOR(i,n-k+1,n+1){ans*=i;}FOR(i,1,k+1){ans/=i;}return ans;}//a,bの最大公約数template <class T>T gcd(T a,T b){if (b == 0) return a;else return gcd(b, a % b);}//素因数分解template <class T>map<T,T> prime_factor(T x){map<T,T> ans;for(T i=2;i*i<=x;i++){while(x%i==0){x/=i;ans[i]++;}}if (x!=1){ans[x]=1;}return ans;}//約数列挙template <class T>vector<T> divisor(T x){vector<T> res;for(T i=1;i*i<=x;i++){if(x%i==0){res.push_back(i);if(i!=x/i){res.push_back(x/i);}}}return res;}//素数判定template <class T>bool is_prime(T x){for(T i=2;i*i<=x;i++){if(x%i==0){return false;}}return x!=1;}int main(){cin.tie(0);ios::sync_with_stdio(false);int a,b,c,d;cin>>a>>b>>c>>d;int ans=0;rep(i,a+1){if(c*i<=b && i+c*i<=d && ans<i){ans=i;}}cout<<ans<<endl;}