제출 #1196832

#제출 시각아이디문제언어결과실행 시간메모리
1196832sleepntsheepJOIOJI (JOI14_joioji)C++17
100 / 100
40 ms8008 KiB
#include <stdio.h> #include <map> #include <tuple> #define N 200000 #define N_ (N + 1) char s[N_]; int n, z, cj[N_], co[N_], ci[N_]; std::map<std::tuple<int, int, int>, int> m; int main() { scanf("%d%s", &n, s); for (int i = 0; i < n; ++i) ci[i + 1] = ci[i] + (s[i] == 'I') * 3, cj[i + 1] = cj[i] + (s[i] == 'J') * 3, co[i + 1] = co[i] + (s[i] == 'O') * 3; for (int i = n - 1; i >= 0; --i) { std::tuple<int, int, int> w {i - cj[i], i - co[i], i - ci[i]}; if (m.count(w) && m[w] - i + 1 > z) z = 1 + m[w] - i; std::tuple<int, int, int> v {i - cj[i + 1] + 1, i - co[i + 1] + 1, i - ci[i + 1] + 1}; if (m.count(v) == 0) m[v] = i; } printf("%d", z); return 0; }

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

joioji.cpp: In function 'int main()':
joioji.cpp:14:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |     scanf("%d%s", &n, s);
      |     ~~~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...