Submission #386957

#TimeUsernameProblemLanguageResultExecution timeMemory
386957peijarSails (IOI07_sails)C++17
55 / 100
25 ms1912 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int MAX = 1e5+1; int nbAHauteur[MAX]; int nbPeutSurHauteur[MAX]; signed main(void) { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int nbPoteaux; cin >> nbPoteaux; int nbRestants(0); for (int iPoteau = 0; iPoteau < nbPoteaux; ++iPoteau) { int hauteur, aMettre; cin >> hauteur >> aMettre; nbAHauteur[hauteur]++; nbRestants += aMettre; nbPeutSurHauteur[hauteur] += aMettre; } int sol(0); int nbPoteauxDispo = 0; int nbDrapeauxDispo = 0; for (int iHauteur(MAX-1); iHauteur; --iHauteur) { nbPoteauxDispo += nbAHauteur[iHauteur]; nbDrapeauxDispo += nbPeutSurHauteur[iHauteur]; int moy = (nbRestants + iHauteur - 1) / iHauteur; int placeEtage = min({moy, nbPoteauxDispo, nbDrapeauxDispo}); nbDrapeauxDispo -= placeEtage; nbRestants -= placeEtage; sol += placeEtage * (placeEtage - 1) / 2; } assert(!nbRestants); cout << sol << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...