Pagini recente » Cod sursa (job #293104) | Cod sursa (job #2888312) | Cod sursa (job #1455187) | Cod sursa (job #1319510) | Cod sursa (job #2971013)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("vanatoare.in");
ofstream fout ("vanatoare.out");
const int MAX_N = 16;
int n, m, limit;
struct rabbit{
int c, v;
inline bool operator < (const rabbit &rhs) const{
if(v != rhs.v)
return v < rhs.v;
return c % v < rhs.c % rhs.v;
}
} r[MAX_N + 5], compress[MAX_N + 5];
int sol;
bool out[MAX_N + 5];
int main (){
ios_base::sync_with_stdio(false);
fin.tie(nullptr), fout.tie(nullptr);
fin>>n>>limit;
for(int i=1; i<=n; i++)
fin>>r[i].c>>r[i].v;
sort(r+1, r+n+1);
for(int i=1, st, dr, maxc; i<=n; i++){
st = dr = i;
maxc = r[dr].c;
while(dr+1 <= n && r[st].v == r[dr+1].v){
if(r[st].v != 1 && r[st].c % r[st].v != r[dr+1].c % r[dr+1].v)
break;
dr++;
maxc = max(maxc, r[dr].c);
}
if(r[st].v == 1){
if(dr == n){
fout<<1<<"\n"<<maxc;
return 0;
}else
continue;
}else{
compress[++m] = rabbit{maxc, r[st].v};
i = dr;
}
}
n = m;
for(int i=1; i<=n; i++)
r[i] = compress[i];
return 0;
}
/**
3 10
3 5
1 3
2 3
**/