Submission #142583


Source Code Expand

#include "grader.h"
#include "honest.h"


#include <cstdio>
#include <vector>
using namespace std;
#define rep(i,n) for(int i=0;i<(n);i++)
#define reg(i,a,b) for(int i=(a);i<=(b);i++)

vector<int> dat[100005];

vector<int> ok;
int gone[100005]={};

/*
int question(int a,int b,int c){
  if(a==1)printf("to..%d is..%d?\n",b,c);
  else printf("to..%d how?\n",b);
  scanf("%d",&a);
  return a;
}
void answer(int p,int q){
  printf("%d..%s\n",p,q==1?"honest":"liar");
}
void impossible(){printf("impossible\n");}
*/

void identify(int N){
  int isnone=0;
  rep(i,N){
    int a=question(2,i,0);
    if(a==0)isnone=1;
    if(1<=a && a<=N)dat[a].push_back(i);
  }
  
  reg(i,1,N){
    if(dat[i].size()==i)ok.push_back(i);
  }
  int hone=-1;
  
  if(ok.size()==1){
    if(isnone==1)hone=ok[0];
    else{
      impossible();
      return;
    }
  }
  else if(ok.size()==2){
    impossible();
    return;
  }
  else{
    int ok0=dat[ok[0]][0],
	ok1=dat[ok[1]][0];
    if(question(1,ok0,ok1)==0){//0!=1
      if(question(1,ok0,dat[ok[2]][0])==0){//0!=2
	hone=ok[0];
      }
      else{
	hone=ok[1];
      }
    }
    else{//0==1
      reg(i,2,ok.size()-1){
	int okto=dat[ok[i]][0];
	if(question(1,ok0,okto)==0){//0!=i
	  hone=ok[i];
	  break;
	}
      }
    }
  }
  //printf("hone..%d\n",hone);
  rep(i,dat[hone].size()){
    int no=dat[hone][i];
    answer(no,1);
    gone[no]=1;
  }
  rep(i,N){
    if(gone[i]==0)answer(i,0);
  }
  return;
}

Submission Info

Submission Time
Task C - しょうじききつね と うそつきにんげん (Honest Fox and Dishonest Man)
User satos
Language IOI-Style C++ (GCC 5.4.1)
Score 0
Code Size 1515 Byte
Status WA
Exec Time 177 ms
Memory 20496 KB

Judge Result

Set Name Subtask1 Subtask2 Subtask3 Subtask4
Score / Max Score 0 / 16 0 / 29 0 / 17 0 / 38
Status
AC × 19
WA × 12
RE × 2
AC × 23
WA × 12
RE × 2
AC × 32
WA × 14
RE × 1
AC × 32
WA × 14
RE × 1
Set Name Test Cases
Subtask1 subtask0/1, subtask0/10, subtask0/11, subtask0/12, subtask0/13, subtask0/14, subtask0/15, subtask0/16, subtask0/17, subtask0/2, subtask0/3, subtask0/4, subtask0/5, subtask0/6, subtask0/7, subtask0/8, subtask0/9, subtask1/1, subtask1/10, subtask1/11, subtask1/12, subtask1/13, subtask1/14, subtask1/15, subtask1/16, subtask1/2, subtask1/3, subtask1/4, subtask1/5, subtask1/6, subtask1/7, subtask1/8, subtask1/9
Subtask2 subtask0/1, subtask0/10, subtask0/11, subtask0/12, subtask0/13, subtask0/14, subtask0/15, subtask0/16, subtask0/17, subtask0/2, subtask0/3, subtask0/4, subtask0/5, subtask0/6, subtask0/7, subtask0/8, subtask0/9, subtask2/1, subtask2/10, subtask2/11, subtask2/12, subtask2/13, subtask2/14, subtask2/15, subtask2/16, subtask2/17, subtask2/18, subtask2/19, subtask2/2, subtask2/20, subtask2/3, subtask2/4, subtask2/5, subtask2/6, subtask2/7, subtask2/8, subtask2/9
Subtask3 subtask0/1, subtask0/10, subtask0/11, subtask0/12, subtask0/13, subtask0/14, subtask0/15, subtask0/16, subtask0/17, subtask0/2, subtask0/3, subtask0/4, subtask0/5, subtask0/6, subtask0/7, subtask0/8, subtask0/9, subtask34/1, subtask34/10, subtask34/11, subtask34/12, subtask34/13, subtask34/14, subtask34/15, subtask34/16, subtask34/17, subtask34/18, subtask34/19, subtask34/2, subtask34/20, subtask34/21, subtask34/22, subtask34/23, subtask34/24, subtask34/25, subtask34/26, subtask34/27, subtask34/28, subtask34/29, subtask34/3, subtask34/30, subtask34/4, subtask34/5, subtask34/6, subtask34/7, subtask34/8, subtask34/9
Subtask4 subtask0/1, subtask0/10, subtask0/11, subtask0/12, subtask0/13, subtask0/14, subtask0/15, subtask0/16, subtask0/17, subtask0/2, subtask0/3, subtask0/4, subtask0/5, subtask0/6, subtask0/7, subtask0/8, subtask0/9, subtask34/1, subtask34/10, subtask34/11, subtask34/12, subtask34/13, subtask34/14, subtask34/15, subtask34/16, subtask34/17, subtask34/18, subtask34/19, subtask34/2, subtask34/20, subtask34/21, subtask34/22, subtask34/23, subtask34/24, subtask34/25, subtask34/26, subtask34/27, subtask34/28, subtask34/29, subtask34/3, subtask34/30, subtask34/4, subtask34/5, subtask34/6, subtask34/7, subtask34/8, subtask34/9
Case Name Status Exec Time Memory
subtask0/1 AC 68 ms 17424 KB
subtask0/10 AC 66 ms 17428 KB
subtask0/11 AC 66 ms 17428 KB
subtask0/12 AC 65 ms 17468 KB
subtask0/13 WA 70 ms 17272 KB
subtask0/14 RE 173 ms 17408 KB
subtask0/15 WA 67 ms 17408 KB
subtask0/16 AC 67 ms 17424 KB
subtask0/17 WA 66 ms 17400 KB
subtask0/2 AC 66 ms 17396 KB
subtask0/3 AC 66 ms 17424 KB
subtask0/4 WA 67 ms 17416 KB
subtask0/5 AC 64 ms 17400 KB
subtask0/6 WA 67 ms 17424 KB
subtask0/7 AC 65 ms 17428 KB
subtask0/8 AC 67 ms 17416 KB
subtask0/9 AC 64 ms 17416 KB
subtask1/1 RE 174 ms 17488 KB
subtask1/10 WA 66 ms 17420 KB
subtask1/11 AC 66 ms 17424 KB
subtask1/12 WA 66 ms 17428 KB
subtask1/13 WA 65 ms 17420 KB
subtask1/14 WA 67 ms 17404 KB
subtask1/15 AC 64 ms 17408 KB
subtask1/16 AC 64 ms 17404 KB
subtask1/2 AC 65 ms 17420 KB
subtask1/3 WA 67 ms 17408 KB
subtask1/4 WA 67 ms 17404 KB
subtask1/5 AC 66 ms 17412 KB
subtask1/6 AC 68 ms 17408 KB
subtask1/7 AC 64 ms 17424 KB
subtask1/8 WA 63 ms 17412 KB
subtask1/9 AC 66 ms 17424 KB
subtask2/1 RE 177 ms 17420 KB
subtask2/10 AC 69 ms 17424 KB
subtask2/11 AC 73 ms 17472 KB
subtask2/12 WA 72 ms 17424 KB
subtask2/13 AC 73 ms 17424 KB
subtask2/14 WA 71 ms 17416 KB
subtask2/15 WA 72 ms 17420 KB
subtask2/16 AC 72 ms 17420 KB
subtask2/17 AC 68 ms 17428 KB
subtask2/18 WA 70 ms 17416 KB
subtask2/19 WA 70 ms 17420 KB
subtask2/2 AC 66 ms 17420 KB
subtask2/20 AC 70 ms 17420 KB
subtask2/3 WA 65 ms 17400 KB
subtask2/4 WA 70 ms 17420 KB
subtask2/5 AC 72 ms 17424 KB
subtask2/6 AC 69 ms 17428 KB
subtask2/7 AC 72 ms 17432 KB
subtask2/8 AC 71 ms 17400 KB
subtask2/9 AC 68 ms 17424 KB
subtask34/1 WA 159 ms 20152 KB
subtask34/10 AC 148 ms 19344 KB
subtask34/11 AC 151 ms 18944 KB
subtask34/12 AC 151 ms 19220 KB
subtask34/13 AC 151 ms 19344 KB
subtask34/14 AC 148 ms 19344 KB
subtask34/15 AC 150 ms 18956 KB
subtask34/16 AC 150 ms 19336 KB
subtask34/17 WA 143 ms 18888 KB
subtask34/18 AC 137 ms 18816 KB
subtask34/19 WA 139 ms 18964 KB
subtask34/2 WA 155 ms 20236 KB
subtask34/20 WA 137 ms 18828 KB
subtask34/21 AC 152 ms 18828 KB
subtask34/22 AC 158 ms 19208 KB
subtask34/23 AC 155 ms 19208 KB
subtask34/24 AC 137 ms 18828 KB
subtask34/25 AC 131 ms 18832 KB
subtask34/26 WA 135 ms 18812 KB
subtask34/27 WA 132 ms 18824 KB
subtask34/28 AC 160 ms 19156 KB
subtask34/29 AC 158 ms 19204 KB
subtask34/3 AC 166 ms 20496 KB
subtask34/30 AC 151 ms 18828 KB
subtask34/4 WA 138 ms 19208 KB
subtask34/5 WA 134 ms 18836 KB
subtask34/6 AC 134 ms 18828 KB
subtask34/7 AC 146 ms 18960 KB
subtask34/8 AC 150 ms 18956 KB
subtask34/9 AC 154 ms 19296 KB