CSES - HIIT Open 2016 - Results
Submission details
Task:Cent saving
Sender:Noname 01
Submission time:2016-05-28 12:38:26 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.06 sdetails
#2ACCEPTED0.06 sdetails

Code

// NONAME-01
#include <bits/stdc++.h>
using namespace std;
vector<long long> a;
long long c[5];
long long total;
int n;
void Load()
{
cin >> n;
a.resize(n);
total = 0;
memset(c, 0, sizeof(c));
for (int i = 0; i < n; i++) {
cin >> a[i];
total += a[i];
c[a[i] % 5]++;
}
}
void Solve()
{
long long sav = 0;
// c0 ignore;
// c1 -> save 1;
// c2 -> save 2;
//cerr << "total = " << total << "\n";
sav += c[1];
sav += 2*c[2];
sav -= 2*c[3];
sav -= c[4];
//cerr << "sav = " << sav << "\n";
// group c[4] and c[3] for +5;
long long i = c[4];
if (i > c[3]) i = c[3];
sav += 5*i;
c[4] -= i;
c[3] -= i;
// group c3 together;
i = c[3] / 2;
sav += 5*i;
// group c4 together;
i = c[4] / 3;
sav += 5*i;
//cerr << "sav = " << sav << "\n";
cout << total - sav << "\n";
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int nt, tt;
cin >> nt;
for (tt = 0; tt < nt; tt++) {
Load();
Solve();
}
return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
100
1000
528433894 255789530 559301042 ...

correct output
475191144965
460688647850
478543444030
475238936090
456736521510
...

user output
475191144965
460688647850
478543444030
475238936090
456736521510
...
Truncated

Test 2

Verdict: ACCEPTED

input
1
100000
666086355 190481330 514353517 ...

correct output
47176864928795

user output
47176864928795