Cod sursa(job #2149322)

Utilizator AndreidgDragomir Andrei Valentin Andreidg Data 2 martie 2018 15:13:50
Problema Distincte Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
using namespace std;

unsigned long long where[100003];
unsigned long long first[100003];
unsigned long long last[100003];
unsigned long long v[100003];

int main(int argc, char** argv) {
	unsigned long long M, N, K;
    unsigned long long qi, qj;
	unsigned long long i, u;
	ifstream f("distincte.in");
	f >> N >> K >> M;
	for (i = 1; i <= N; i++) {
		f >> v[i];
		u = v[i];
		last[i] = u;
		if (where[u] == 0) {
			first[i] = u;
		}
		else {
			last[where[u]] = 0;
		}
		where[u] = i;
	}
	for (i = 1; i <= N; i++) {
		first[i] = first[i] + first[i - 1];
		last[i]  = last[i] + last[i - 1];
	}
	ofstream g("distincte.out");
	for (i = 0; i < M; i++) {
		f >> qi >> qj;
        u = qi == qj ? v[qi] : first[qj] - last[qi-1];

		//u = qi <= qj ? first[qj] - last[qi-1] : first[qi] - last[qj-1];
		g << u % 666013 << "\n";
	}
	f.close();
	g.close();
	return 0;
}