Cod sursa(job #2087215)

Utilizator georgitTreista Georgiana georgit Data 13 decembrie 2017 09:55:43
Problema Marbles Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.44 kb
#include <fstream>
#include <algorithm>

using namespace std;
pair<int,int> a[100001];
int n,i,m,mij,st,dr,x,y,maxi,mini,nrmax,j,tip,cul[80];
int main()
{
    ifstream f("marbles.in");
    ofstream g("marbles.out");
    f>>n>>m;
    for(i=1; i<=n; i++)
        f>>a[i].first>>a[i].second;
    sort(a+1,a+n+1);
    for(i=1; i<=m; i++)
    {
        f>>tip>>x>>y;
        if(tip==0)
        {
            st=1;
            dr=n;
            while(st<=dr)
            {
                mij=(st+dr)/2;
                if(a[mij].first==x)
                {
                    a[mij].first=x+y;
                    break;
                }
                else if(a[mij].first<x)
                    st=mij+1;
                else
                    dr=mij-1;
            }

        }
        else
        {
            mini=65;
            maxi=0;
            nrmax=0;
            for(j=1; j<=n; j++)
                if(a[j].first>=x and a[j].first<=y)
                {
                    cul[a[j].second]++;
                    if(a[j].second<mini)
                        mini=a[j].second;
                    if(a[j].second>maxi)
                        maxi=a[j].second;
                }
            for(j=mini; j<=maxi; j++)
            {
                if(cul[j]>nrmax)
                    nrmax=cul[j];
                cul[j]=0;
            }
            g<<nrmax<<"\n";
        }

    }


    return 0;
}