Mai intai trebuie sa te autentifici.
Cod sursa(job #289110)
Utilizator | Data | 26 martie 2009 14:24:43 | |
---|---|---|---|
Problema | Marbles | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.77 kb |
#include<fstream>
using namespace std;
int v[65][10001],i,j,op,a,b,sol,n,m,poz[10001],maxim,x;
int main()
{
ifstream f("marbles.in");
ofstream g("marbles.out");
f>>n>>m;
for(i=1;i<=n;i++)
{f>>a>>b; poz[a]=b;
for(j=a;j<=100010;j++)
v[b][j]++;
if(b>maxim) maxim=b;
}
for(i=1;i<=m;i++)
{ f>>op>>a>>b;
if(op==1)
{ sol=0;
for(j=1;j<=maxim;j++)
{ x=v[j][b]-v[j][a];
if(v[j][a]!=v[j][a-1]) x++;
if(x>sol) sol=x;
}
g<<sol<<'\n';
}
else { b=a+b;
x=poz[a]; poz[a]=0; poz[b]=x;
if(a<b) for(j=a;j>0;j--) v[x][j]--;
else for(j=a-1;j>=b;j--) v[x][j]++;
}
}
f.close();
g.close();
return 0;
}