Cod sursa(job #1070233)

Utilizator DanielRusuDaniel Rusu DanielRusu Data 31 decembrie 2013 13:52:55
Problema Progresie Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 1.29 kb
#include <fstream>

using namespace std;

ifstream fin("progresie.in");
ofstream fout("progresie.out");

struct coord {
    int in, sf;
};

coord v[10001];
int n, r, i, elem, j, k, l, p, t, q = 1, rez;

int main() {
    fin >> n;

    v[1].in = v[1].sf = 1;

    for(i = 1;i <= n;i++) {
        fin >> elem >> r;

        j = 1;k = 0;p = 0;

        while(k != 1) {
            l = j;
            p = 0;

            while(p < elem && k == 0) {
                for(t = 1;t <= q;t++) {
                    if(l >= v[t].in && l <= v[t].sf) break;
                    else if(l < v[t].in) {k = 1;break;}
                }

                if(t == q + 1) {
                    while(k == 0) {
                        v[1 + q].in = v[q].sf + q + 1;
                        q++;
                        v[q].sf = v[q].in + q - 1;
                        if(l >= v[q].in && l <= v[q].sf) k = 2;
                        else if(l < v[q].in) k = 1;
                    }
                    if(k == 2) k = 0;
                }
                p++;
                l += r;
            }

            k = (k + 1) % 2;
            if(k == 1) rez = j;
            j++;
        }

        fout << rez << '\n';
    }

    fin.close();
    fout.close();

    return 0;
}