제출 #110169

#제출 시각아이디문제언어결과실행 시간메모리
110169tincamateiPort Facility (JOI17_port_facility)C++14
0 / 100
2 ms384 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); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

port_facility.cpp: In function 'int main()':
port_facility.cpp:23:8: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  fscanf(fin, "%d", &n);
  ~~~~~~^~~~~~~~~~~~~~~
port_facility.cpp:27:9: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   fscanf(fin, "%d%d", &a, &b);
   ~~~~~~^~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...