Cod sursa(job #1474533)

Utilizator LegionHagiu Stefan Legion Data 22 august 2015 10:56:20
Problema Caramizi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <iostream>
#include <fstream>
using namespace std;
int loc[1000001],loc2[1000001];
int main()
{
	ifstream in("caramizi.in");
	ofstream out("caramizi.out");
	int n, m, i;
	long long tot = 0,x;
	in >> n;
	in >> m;
	for (i = 1;i <= n;i++)
	{
		in >> x;
		tot += x;
		loc[x-1]++;
	}
	loc2[1000000] = loc[1000000];
	for (i = 999999;i >= 1;i--)
	{
		loc[i] += loc[i + 1];
		loc2[i] = loc[i] + loc2[i + 1];
	}
	for (i = 1;i <= 20;i++)
	{
		out<<loc2[i]<<" ";
	}
	for (i = 1;i <= m;i++)
	{
		in >> x;
		if (x > 1000000)
		{
			out << tot / x*x;
		}
		else
		{
			out << ((tot - loc2[x])/x)*x;
		}
		out << "\n";
	}
}