Submission #3699

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
36992013-08-31 07:43:42mjy0503Cactus? Not cactus? (kriii1_C)C++98
1 / 1
180 ms24632 KiB
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <vector>
#include <set>
int n,top2=-1,stack2[200001],stack[200001],top=-1,save[200001],cnt[200001];
using namespace std;
vector<int> list[200001],list2[200001];
set< pair<int,int> > edge;
bool check[100001],flag,backedge;
void back(int k){
int i;
stack[++top]=k;
while(top!=-1){
k=stack[top];
check[k]=1;
for(;save[k]<list[k].size();save[k]++){
if(!check[list[k][save[k]]]){
list2[list[k][save[k]]].push_back(k);
edge.insert(make_pair(list[k][save[k]],k));
stack[++top]=list[k][save[k]];
break;
}
else if(edge.find(make_pair(k,list[k][save[k]]))==edge.end()){
edge.insert(make_pair(list[k][save[k]],k));
cnt[list[k][save[k]]]++;
list2[list[k][save[k]]].push_back(k);
}
}
if(save[k]==list[k].size()){
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...