| Task: | Omenat |
| Sender: | |
| Submission time: | 2015-12-20 21:50:19 +0200 |
| Language: | C++ |
| Status: | READY |
| Result: | 0 |
| group | verdict | score |
|---|---|---|
| #1 | RUNTIME ERROR | 4.3 |
| test | verdict | time | score | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.05 s | 0.4 | details |
| #2 | RUNTIME ERROR | 0.14 s | 0 | details |
| #3 | RUNTIME ERROR | 0.16 s | 0 | details |
| #4 | ACCEPTED | 0.05 s | 1.5 | details |
| #5 | RUNTIME ERROR | 0.15 s | 0 | details |
| #6 | RUNTIME ERROR | 0.15 s | 0 | details |
| #7 | RUNTIME ERROR | 0.17 s | 0 | details |
| #8 | ACCEPTED | 0.05 s | 1 | details |
| #9 | RUNTIME ERROR | 0.15 s | 0 | details |
| #10 | ACCEPTED | 0.06 s | 1.4 | details |
Compiler report
input/code.cpp: In member function 'int TXD::Set(int, int)':
input/code.cpp:22:3: warning: no return statement in function returning non-void [-Wreturn-type]
}
^
input/code.cpp: In function 'int main()':
input/code.cpp:82:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i=0; i<txds.size(); ++i){
^
input/code.cpp:89:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i=0; i<txds.size(); ++i)
^Code
#include <iostream>
#include <vector>
using namespace std;
int n;
int p[101];
class TXD{
unsigned long long a[1010][2];
unsigned long long n[1010][2];
int M;
int T;
public:
bool found;
int Set(int v, int t){
M=v;
T=t%M;
for (int i=0; i<M; ++i){ a[i][0]=0; a[i][1]=0;}
for (int i=0; i<M; ++i){ n[i][0]=0; n[i][1]=0;}
a[0][1]|=(1ull<<63);
}
void Push(int id){
unsigned long long c=0;
if (id<64) c|=(1ull<<id);
else c|=(1ull<<(id-64));
for (int i=0; i<M; ++i){
if (a[i][1]&(1ull<<63)){
int nid=(i+p[id])%M;
n[nid][0]=a[i][0];
n[nid][1]=a[i][1];
if (i<64)n[nid][0]|=c;
else n[nid][1]|=c;
}
}
for (int i=0; i<M; ++i){
if (n[i][0] || n[i][1]){
a[i][1]|=(1ull<<63);
a[i][0]|=n[i][0];
a[i][1]|=n[i][1];
n[i][0]=0;
n[i][1]=1;
}
}
if (a[T][1]&(1ull<<63)) found=1;
}
unsigned long long GetTV(int i){
return a[T][i];
}
TXD(){
found=0;
}
};
vector<TXD> txds;
long long s;
void Texi(int i){
TXD k;
k.Set(i, s/2);
txds.push_back(k);
}
int main(){
cin >> n;
for (int i=0; i<n; ++i){
cin >> p[i];
s+=p[i];
}
for (int i=2; i<1010; i*=2) Texi(i);
int ci=0;
bool ready=0;
unsigned long long sc[2];
while (1){
ready=1;
for (int i=0; i<txds.size(); ++i){
txds[i].Push(ci);
ready=ready && txds[i].found;
}
++ci;
if (ready){
sc[0]=0; sc[1]=0; --sc[0]; --sc[1];
for (int i=0; i<txds.size(); ++i)
for (int b=0; b<2; ++b) sc[b]&=txds[i].GetTV(b);
long long sts=0;
for (int i=0; i<n; ++i){
bool is=0;
if (i<64) is=(sc[0]&(1ull<<i));
else is=(sc[0]&(1ull<<(i-64)));
if (is) sts+=p[i];
}
if (sts>=s/2) break;
}
}
for (int i=0; i<n; ++i){
bool is=0;
if (i<64) is=(sc[0]&(1ull<<i));
else is=(sc[0]&(1ull<<(i-64)));
cout << (is?1:2) << "\n";
}
}Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 95 779724552 231968220 985023789 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1 1 1 1 1 ... |
Test 2
Verdict: RUNTIME ERROR
| input |
|---|
| 85 229722261 51722691 862338862 8... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 3
Verdict: RUNTIME ERROR
| input |
|---|
| 97 398995377 989444445 634573915 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 99 843687873 164010938 51269970 4... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1 1 1 1 1 ... |
Test 5
Verdict: RUNTIME ERROR
| input |
|---|
| 90 864611617 418460939 773297829 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 6
Verdict: RUNTIME ERROR
| input |
|---|
| 92 289890246 25801423 763027596 7... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 7
Verdict: RUNTIME ERROR
| input |
|---|
| 89 879039800 50522278 850785072 4... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 96 27192469 222283781 681532515 1... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1 1 1 1 1 ... |
Test 9
Verdict: RUNTIME ERROR
| input |
|---|
| 100 186459081 254674429 394007236 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 98 612168861 979831717 671087051 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| 1 1 1 1 1 ... |
