Envío 607
Caso # |
Resultado |
Tiempo |
Memoria |
#1 |

Correcto
|
0.006 s
|
1 KBi |
#2 |

Correcto
|
0.006 s
|
1 KBi |
#3 |

Correcto
|
0.007 s
|
1 KBi |
#4 |

Incorrecto
|
0.006 s
|
1 KBi |
#5 |

Correcto
|
0.006 s
|
1 KBi |
#6 |

Correcto
|
0.007 s
|
7 KBi |
#7 |

Correcto
|
0.005 s
|
3 KBi |
#8 |

Correcto
|
0.005 s
|
1 KBi |
#9 |

Correcto
|
0.005 s
|
1 KBi |
#10 |

Correcto
|
0.005 s
|
2 KBi |
#11 |

Correcto
|
0.006 s
|
1 KBi |
#12 |

Correcto
|
0.005 s
|
7 KBi |
#13 |

Correcto
|
0.006 s
|
2 KBi |
#14 |

Incorrecto
|
0.122 s
|
10 KBi |
#15 |

Correcto
|
0.094 s
|
8 KBi |
#16 |

Correcto
|
0.093 s
|
7 KBi |
#17 |

Correcto
|
0.091 s
|
7 KBi |
#18 |

Correcto
|
0.11 s
|
7 KBi |
#19 |

Correcto
|
0.111 s
|
6 KBi |
#20 |

Incorrecto
|
0.178 s
|
20 KBi |
Puntos totales: 85 / 100
Código
#include <iostream>
#include <vector>
#include <list>
using namespace std;
void splitArray() {
int n;
cin >> n;
vector<int> a(n);
vector<long> a_sum(n);
list<int> q;
int prev = 0;
for (int i = 0; i < n; ++i) {
cin >> a[i];
a_sum[i] = a[i] + prev;
prev = a[i];
}
long sum = 0;
for (int i = n - 1; i > 0; --i) {
sum += a[i];
if (sum < 0) {
q.push_back(i);
}
}
while (q.empty() == false) {
int rightIndex = q.back();
q.pop_back();
if (a_sum[rightIndex - 1] > 0) {
cout << rightIndex << endl;
return;
}
}
cout << "Impossible" << endl;
}
int main() { splitArray(); }