Borderou de evaluare (job #648667)

Utilizator avatar deer Mohanu Dominic deer IP ascuns
Problemă Dominant (clasa a 8-a) Compilator cpp-32
Rundă Arhiva de probleme Status evaluat
Dată 27 apr. 2022 21:38:35 Scor 100

Raport evaluator

Compilare: main.cpp: In function 'int main()': main.cpp:2:239: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'unsigned int'} [-Wsign-compare] 2 | using namespace std;unordered_map < int, int > st, dr;int dif[300005];int main() {ifstream cin("dominant.in");ofstream cout("dominant.out");int cer, maxi = -1e9, mini = 1e9, lmax, ap;string s;cin >> cer >> s;s = '#' + s;for (int i = 1; i <= s.size(); ++i) { dif[i] = (s[i] == '1' ? (dif[i - 1] + 1) : (dif[i - 1] - 1));maxi = max(maxi, dif[i]);mini = min(mini, dif[i]);}st[0] = 0;dr[0] = 0;for (int i = 1; i <= s.size(); ++i) {st[dif[i]] = (st.count(dif[i]) ? min(st[dif[i]], i) : i); dr[dif[i]] = (dr.count(dif[i]) ? max(dr[dif[i]], i) : i);}lmax = -1;ap = 0; for (int i = mini; i <= maxi; i++) {if (st.count(i) && dr.count(i + 1)) {if (dr[i + 1] - st[i] > lmax) {lmax = dr[i + 1] - st[i];ap = 1;} else if (dr[i + 1] - st[i] == lmax)ap++;}}cout << (cer == 1 ? lmax : ap);return 0;} | ~~^~~~~~~~~~~ main.cpp:2:414: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'unsigned int'} [-Wsign-compare] 2 | using namespace std;unordered_map < int, int > st, dr;int dif[300005];int main() {ifstream cin("dominant.in");ofstream cout("dominant.out");int cer, maxi = -1e9, mini = 1e9, lmax, ap;string s;cin >> cer >> s;s = '#' + s;for (int i = 1; i <= s.size(); ++i) { dif[i] = (s[i] == '1' ? (dif[i - 1] + 1) : (dif[i - 1] - 1));maxi = max(maxi, dif[i]);mini = min(mini, dif[i]);}st[0] = 0;dr[0] = 0;for (int i = 1; i <= s.size(); ++i) {st[dif[i]] = (st.count(dif[i]) ? min(st[dif[i]], i) : i); dr[dif[i]] = (dr.count(dif[i]) ? max(dr[dif[i]], i) : i);}lmax = -1;ap = 0; for (int i = mini; i <= maxi; i++) {if (st.count(i) && dr.count(i + 1)) {if (dr[i + 1] - st[i] > lmax) {lmax = dr[i + 1] - st[i];ap = 1;} else if (dr[i + 1] - st[i] == lmax)ap++;}}cout << (cer == 1 ? lmax : ap);return 0;} | ~~^~~~~~~~~~~
Test Timp execuție Memorie folosită Mesaj Punctaj/test
1 1 ms 114 kb OK 5
2 1 ms 114 kb OK 5
3 1 ms 114 kb OK 5
4 1 ms 114 kb OK 5
5 1 ms 245 kb OK 5
6 1 ms 376 kb OK 5
7 1 ms 249 kb OK 5
8 41 ms 1945 kb OK 5
9 62 ms 2777 kb OK 5
10 183 ms 7471 kb OK 5
11 126 ms 4476 kb OK 5
12 232 ms 10416 kb OK 5
13 229 ms 10420 kb OK 5
14 211 ms 7962 kb OK 5
15 276 ms 11550 kb OK 5
16 123 ms 4476 kb OK 5
17 226 ms 10412 kb OK 5
18 220 ms 10420 kb OK 5
19 206 ms 7958 kb OK 5
20 269 ms 11550 kb OK 5
Punctaj total 100