제출 #1364215

#제출 시각아이디문제언어결과실행 시간메모리
1364215yyc000123Toy Design (EGOI22_toydesign)C++20
0 / 100
2 ms428 KiB
#include<bits/stdc++.h>
// #include "toydesign.h"
using namespace std ;
#define F first
#define S second
const int N = 205 ;
int n , arr[N] ;
vector<pair<int,int>> edges ;

int Connected(int a, int i, int j);
void DescribeDesign(std::vector<std::pair<int, int>> result);

void ToyDesign(int n, int max_ops){
    int cnt = 0 ; arr[0] = 1 ;
    for(int i=2 ; i<=n ; i++){
        int le = -1 , ri = cnt , cur = cnt ;
        while(le<ri){
            int mi = (le+ri)/2+1-(le==-1 && ri==0) , k = Connected(mi,1,i) ;
            if(k==mi) ri = mi-1 ;
            else cnt++ , arr[cnt] = i , le = mi ;
        }
        if(le!=cur) edges.push_back({i,arr[le+1]}) ;
    }
    DescribeDesign(edges) ;
    return ;
    for(int i=1 ; i<=n ; i++){
        for(int j=i+1 ; j<=n ; j++){
            int k = Connected(0,i,j) ;
            if(!k) edges.push_back({i,j}) ;
        }
    }
    DescribeDesign(edges) ;
}


int Connected(int a , int i , int j){
    cout << "? " << a << ' ' << i << ' ' << j << endl ;
    int k ; cin >> k ; return k ;
}
void DescribeDesign(vector<pair<int,int>> result){
    cout << "! " << (int)result.size() << endl ;
    for(auto it:result) cout << it.F << ' ' << it.S << endl ;
}
int main(){
    cin >> n ;
    ToyDesign(n,n) ;
    return 0 ;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…