Submission #950585

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
9505852024-03-20 12:56:30esomerTowers (NOI22_towers)C++17
100 / 100
897 ms191272 KiB
#include <bits/stdc++.h>
using namespace std;
const int maxX = 1e6;
vector<int> cols[maxX + 1], rows[maxX + 1];
vector<bool> chosen[maxX + 1];
pair<int, int> indRow[maxX + 1], indCol[maxX + 1];
queue<pair<int, int>> q;
bool choose(int X, int Y){
int lo = 0;
int hi = (int)cols[X].size() - 1;
int bst = -1;
while(lo <= hi){
int mid = (lo + hi) / 2;
if(cols[X][mid] >= Y){
bst = mid;
hi = mid - 1;
}else lo = mid + 1;
}
if(chosen[X][bst]) return true;
// cout << "Chose " << X << " " << cols[X][bst] << " bst " << bst << " indCol " << indCol[X].first << " " << indCol[X].second << "\n";
chosen[X][bst] = true;
if(indCol[X].first == -1){
indCol[X] = {bst, bst};
}else if(indCol[X].first == indCol[X].second){
indCol[X] = {min(bst, indCol[X].first), max(bst, indCol[X].second)};
}else if(indCol[X].first > bst){
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#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...