제출 #1313545

#제출 시각아이디문제언어결과실행 시간메모리
1313545Jawad_Akbar_JJHidden Sequence (info1cup18_hidden)C++20
100 / 100
2 ms424 KiB
#include <iostream> #include <vector> #include "grader.h" using namespace std; int pre[1005], suf[1005]; vector<int> get(int c1, int a, int c2 = 0, int b = 0){ vector<int> vec; for (int i=1;i<=c1;i++) vec.push_back(a); for (int i=1;i<=c2;i++) vec.push_back(b); return vec; } vector<int> findSequence(int n){ int z = 0, o = 1, Co = 0, Cz = 0, lim = n / 2 + 1; if (isSubsequence(get((n + 1) / 2, z))) swap(z, o); for (int i=(n + 1) / 2;i>=0;i--){ if (i == 0) return get(n, o); if (isSubsequence(get(i, z))) Cz = i, Co = n - i, i = -1; } for (int i=Cz, num = 0;i>=1;i--){ while (i + num + 1 <= lim and isSubsequence(get(i, z, num + 1, o))) num++; suf[i] = num; } for (int i=1, num = 0;i<=Cz;i++){ while (Cz - i + 1 + num + 1 <= lim and isSubsequence(get(num + 1, o, Cz - i + 1, z))) num++; pre[i] = num; } vector<int> ans; suf[0] = min(lim, Co); for (int i=1, cur;i<=Cz;i++){ if (pre[i] + Cz - i + 1 != lim) cur = pre[i] - pre[i-1]; else if (i - 1 + suf[i-1] != lim) cur = suf[i-1] - suf[i]; else cur = n - Cz - suf[i] - pre[i-1]; while (cur--) Co--, ans.push_back(o); ans.push_back(z); } while (Co--) ans.push_back(o); return ans; }

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

grader.cpp: In function 'int main()':
grader.cpp:28:26: warning: format '%d' expects argument of type 'int', but argument 3 has type 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wformat=]
   28 |     fprintf (fifo_out, "%d\n", ans.size ());
      |                         ~^     ~~~~~~~~~~~
      |                          |              |
      |                          int            std::vector<int>::size_type {aka long unsigned int}
      |                         %ld
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...