Pagini recente » Cod sursa (job #2271716) | Cod sursa (job #2225674) | Cod sursa (job #722621) | Cod sursa (job #2241312) | Cod sursa (job #289157)
Cod sursa(job #289157)
#include<fstream>
using namespace std;
int t[100010],i,a,b,op,n,m,nr,tip,sol,j;
struct nod { int inf; nod *adr;};
nod *v[65],*c;
void add(int x,int y)
{ nod *p;
p=new nod;
p->inf=y;
p->adr=v[x];
v[x]=p;
}
void del (int x, int y)
{ nod *p,*q;
p=new nod;
q=new nod;
p=v[x];
while(p->inf!=y)
{q->adr=p; p=p->adr;}
q->adr=p->adr;
delete p;
}
int main()
{
ifstream f("marbles.in");
ofstream g("marbles.out");
f>>n>>m;
for(i=1;i<=n;i++)
{ f>>a>>b; add(b,a);
t[a]=b;
if(b>tip) tip=b;
}
for(i=1;i<=m;i++)
{ f>>op>>a>>b;
if(op) { sol=0; for(j=1;j<=tip;j++)
{nr=0;
for(c=v[j];c;c=c->adr)
if(a<=c->inf&&c->inf<=b) nr++;
if(nr>sol) sol=nr;
}
g<<sol<<'\n';
}
else { del(t[a],a); add(t[a],a+b); t[a+b]=t[a]; t[a]=0;}
}
f.close();
g.close();
return 0;
}