Pagini recente »
Borderou de evaluare (job #344446)
|
Borderou de evaluare (job #727280)
|
Borderou de evaluare (job #218953)
|
Borderou de evaluare (job #90918)
|
Borderou de evaluare (job #648667)
Borderou de evaluare (job #648667)
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
|