제출 #110170

#제출 시각아이디문제언어결과실행 시간메모리
110170tincamateiPort Facility (JOI17_port_facility)C++14
0 / 100
2 ms256 KiB
#include <bits/stdc++.h> using namespace std; const int MAX_N = 1000000; const int MOD = 1000000007; int box[1+2*MAX_N]; int color[1+MAX_N], last[1+MAX_N]; set<pair<int, int> > emp, c[3]; int main() {/* #ifdef HOME FILE *fin = fopen("input.in", "r"); FILE *fout = fopen("output.out", "w"); #else FILE *fin = stdin; FILE *fout = stdout; #endif int n, rez = 1; fscanf(fin, "%d", &n); for(int i = 1; i <= n; ++i) { int a, b; fscanf(fin, "%d%d", &a, &b); box[a] = i; box[b] = -i; last[i] = a; } for(int i = 1; i <= 2 * n; ++i) { set<pair<int, int> >::iterator it; if(box[i] > 0) { emp.insert(make_pair(last[box[i]], box[i])); } else { box[i] = -box[i]; it = emp.lower_bound(make_pair(last[box[i]] + 1, -1)); if(color[box[i]] == 0) { rez = rez * 2 % MOD; color[box[i]] = 1; } while(it != emp.end()) { color[it->second] = 3 - color[box[i]]; c[color[it->second]].insert(*it); it = emp.erase(it); } it = c[color[box[i]]].lower_bound(make_pair(last[box[i]] + 1, -1)); if(it != c[color[box[i]]].end()) { rez = 0; } emp.erase(make_pair(last[box[i]], box[i])); c[color[box[i]]].erase(make_pair(last[box[i]], box[i])); } } fprintf(fout, "%d", rez); fclose(fin); fclose(fout);*/ printf("%d", 0); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...