Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
Untitled diff
생성일
8년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
2 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
102 행
복사
3 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
103 행
복사
#include <bits/stdc++.h>
#include <bits/stdc++.h>
using namespace std;
using namespace std;
#define mp make_pair
#define mp make_pair
#define pb push_back
#define pb push_back
#define len(a) (int)a.size()
#define len(a) (int)a.size()
#define fi first
#define fi first
#define sc second
#define sc second
#define d1(x) cerr<<#x<<":"<<x<<endl;
#define d1(x) cerr<<#x<<":"<<x<<endl;
#define d2(x,y) cerr<<#x<<":"<<x<<" "<<#y<<":"<<y<<endl;
#define d2(x,y) cerr<<#x<<":"<<x<<" "<<#y<<":"<<y<<endl;
#define d3(x,y,z) cerr<<#x<<":"<<x<<" "<<#y<<":"<<y<<" "<<#z<<":"<<z<<endl;
#define d3(x,y,z) cerr<<#x<<":"<<x<<" "<<#y<<":"<<y<<" "<<#z<<":"<<z<<endl;
#define left ind+ind
#define left ind+ind
#define right ind+ind+1
#define right ind+ind+1
#define mid (l+r)/2
#define mid (l+r)/2
const long long LINF = 1e18+5;
const long long LINF = 1e18+5;
const int MOD = (int) 1e9 + 7;
const int MOD = (int) 1e9 + 7;
const int LOG = 18;
const int LOG = 18;
const int INF = 1e9;
const int INF = 1e9;
const int N = 1e5+5;
const int N = 1e5+5;
const int M = 350;
const int M = 350;
const int SQ = 350;
const int SQ = 350;
typedef long long int lli;
typedef long long int lli;
typedef pair<int,int> pii;
typedef pair<int,int> pii;
typedef pair<pii,int> piii;
typedef pair<pii,int> piii;
vector <int> ed[N];
vector <int> ed[N];
int n,m,dp[N][2],s;
int n,m,dp[N][2],s;
int dfs(int cur,int turn) {
int dfs(int cur,int turn) {
if(dp[cur][turn] != -1) return dp[cur][turn];
if(dp[cur][turn] != -1) return dp[cur][turn];
if (!len(ed[cur])) {
if (!len(ed[cur])) {
if(turn == 1) return dp[cur][turn] = 0;
if(turn == 1) return dp[cur][turn] = 0;
else return dp[cur][turn] = 2;
else return dp[cur][turn] = 2;
}
}
bool flag = true;
bool flag = true;
for (auto i : ed[cur]) {
for (auto i : ed[cur]) {
if(dp[i][!turn] == -1)
if(dp[i][!turn] == -1)
flag = false;
flag = false;
}
}
if(flag == true) return dp[cur][turn] = 1;
if(flag == true) return dp[cur][turn] = 1;
int mx = 0;
int mx = 0;
dp[cur][turn] = 1;
dp[cur][turn] = 1;
for (auto i : ed[cur])
for (auto i : ed[cur])
복사
복사됨
복사
복사됨
if(dp[i][!turn] == -1)
mx = max(mx,dfs(i,!turn));
mx = max(mx,dfs(i,!turn));
return dp[cur][turn] = mx;
return dp[cur][turn] = mx;
}
}
void write(int cur,int turn) {
void write(int cur,int turn) {
printf("%d ",cur);
printf("%d ",cur);
for (auto i : ed[cur]) {
for (auto i : ed[cur]) {
if(dp[i][!turn] == 2) {
if(dp[i][!turn] == 2) {
write(i,!turn);
write(i,!turn);
break;
break;
}
}
}
}
}
}
int main() {
int main() {
memset(dp,-1,sizeof dp);
memset(dp,-1,sizeof dp);
scanf("%d %d",&n,&m);
scanf("%d %d",&n,&m);
for (int i = 1 ; i <= n ; i++) {
for (int i = 1 ; i <= n ; i++) {
int m;
int m;
scanf("%d",&m);
scanf("%d",&m);
while(m--) {
while(m--) {
int v;
int v;
scanf("%d",&v);
scanf("%d",&v);
ed[i].pb(v);
ed[i].pb(v);
}
}
}
}
scanf("%d",&s);
scanf("%d",&s);
int get = dfs(s,1);
int get = dfs(s,1);
if (get == 0) {
if (get == 0) {
printf("Lose");
printf("Lose");
}
}
else if (get == 1) {
else if (get == 1) {
printf("Draw");
printf("Draw");
}
}
else {
else {
printf("Win\n");
printf("Win\n");
write(s,1);
write(s,1);
}
}
return 0 ;
return 0 ;
}
}
복사
복사됨
복사
복사됨
저장된 비교 결과
원본
파일 열기
#include <bits/stdc++.h> using namespace std; #define mp make_pair #define pb push_back #define len(a) (int)a.size() #define fi first #define sc second #define d1(x) cerr<<#x<<":"<<x<<endl; #define d2(x,y) cerr<<#x<<":"<<x<<" "<<#y<<":"<<y<<endl; #define d3(x,y,z) cerr<<#x<<":"<<x<<" "<<#y<<":"<<y<<" "<<#z<<":"<<z<<endl; #define left ind+ind #define right ind+ind+1 #define mid (l+r)/2 const long long LINF = 1e18+5; const int MOD = (int) 1e9 + 7; const int LOG = 18; const int INF = 1e9; const int N = 1e5+5; const int M = 350; const int SQ = 350; typedef long long int lli; typedef pair<int,int> pii; typedef pair<pii,int> piii; vector <int> ed[N]; int n,m,dp[N][2],s; int dfs(int cur,int turn) { if(dp[cur][turn] != -1) return dp[cur][turn]; if (!len(ed[cur])) { if(turn == 1) return dp[cur][turn] = 0; else return dp[cur][turn] = 2; } bool flag = true; for (auto i : ed[cur]) { if(dp[i][!turn] == -1) flag = false; } if(flag == true) return dp[cur][turn] = 1; int mx = 0; dp[cur][turn] = 1; for (auto i : ed[cur]) if(dp[i][!turn] == -1) mx = max(mx,dfs(i,!turn)); return dp[cur][turn] = mx; } void write(int cur,int turn) { printf("%d ",cur); for (auto i : ed[cur]) { if(dp[i][!turn] == 2) { write(i,!turn); break; } } } int main() { memset(dp,-1,sizeof dp); scanf("%d %d",&n,&m); for (int i = 1 ; i <= n ; i++) { int m; scanf("%d",&m); while(m--) { int v; scanf("%d",&v); ed[i].pb(v); } } scanf("%d",&s); int get = dfs(s,1); if (get == 0) { printf("Lose"); } else if (get == 1) { printf("Draw"); } else { printf("Win\n"); write(s,1); } return 0 ; }
수정본
파일 열기
#include <bits/stdc++.h> using namespace std; #define mp make_pair #define pb push_back #define len(a) (int)a.size() #define fi first #define sc second #define d1(x) cerr<<#x<<":"<<x<<endl; #define d2(x,y) cerr<<#x<<":"<<x<<" "<<#y<<":"<<y<<endl; #define d3(x,y,z) cerr<<#x<<":"<<x<<" "<<#y<<":"<<y<<" "<<#z<<":"<<z<<endl; #define left ind+ind #define right ind+ind+1 #define mid (l+r)/2 const long long LINF = 1e18+5; const int MOD = (int) 1e9 + 7; const int LOG = 18; const int INF = 1e9; const int N = 1e5+5; const int M = 350; const int SQ = 350; typedef long long int lli; typedef pair<int,int> pii; typedef pair<pii,int> piii; vector <int> ed[N]; int n,m,dp[N][2],s; int dfs(int cur,int turn) { if(dp[cur][turn] != -1) return dp[cur][turn]; if (!len(ed[cur])) { if(turn == 1) return dp[cur][turn] = 0; else return dp[cur][turn] = 2; } bool flag = true; for (auto i : ed[cur]) { if(dp[i][!turn] == -1) flag = false; } if(flag == true) return dp[cur][turn] = 1; int mx = 0; dp[cur][turn] = 1; for (auto i : ed[cur]) mx = max(mx,dfs(i,!turn)); return dp[cur][turn] = mx; } void write(int cur,int turn) { printf("%d ",cur); for (auto i : ed[cur]) { if(dp[i][!turn] == 2) { write(i,!turn); break; } } } int main() { memset(dp,-1,sizeof dp); scanf("%d %d",&n,&m); for (int i = 1 ; i <= n ; i++) { int m; scanf("%d",&m); while(m--) { int v; scanf("%d",&v); ed[i].pb(v); } } scanf("%d",&s); int get = dfs(s,1); if (get == 0) { printf("Lose"); } else if (get == 1) { printf("Draw"); } else { printf("Win\n"); write(s,1); } return 0 ; }
비교하기