比赛 2026.4.11 评测结果 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
题目名称 最终得分 100
用户昵称 梦那边的美好ME 运行时间 2.505 s
代码语言 C++ 内存使用 7.05 MiB
提交时间 2026-04-11 11:28:25
显示代码纯文本
#include "gra.h"
#include<bits/stdc++.h>
using namespace std;

int nm[1100],cnt,c[1100];
vector <pair <int,int> > g1,g2;

void tree(int n){
	nm[++cnt]=1;
	for (int i=2;i<=n;i++){
		nm[++cnt]=i;
		c[cnt]=query(nm[cnt-1],nm[cnt]);
		while (cnt>=3&&c[cnt]!=c[cnt-1]){
			if (c[cnt]==1) g1.push_back({nm[cnt],nm[cnt-1]});
			else g2.push_back({nm[cnt],nm[cnt-1]});
			if (c[cnt-1]==1) g1.push_back({nm[cnt-1],nm[cnt-2]});
			else g2.push_back({nm[cnt-1],nm[cnt-2]});
			cnt--;
			nm[cnt]=nm[cnt+1];
			c[cnt]=query(nm[cnt-1],nm[cnt]);
		}
	}
	if (c[2]==1){
		for (int i=0;i<g1.size();i++){
			report(g1[i].first,g1[i].second);
		}
	}else{
		for (int i=0;i<g2.size();i++){
			report(g2[i].first,g2[i].second);
		}
	}
	for (int i=2;i<=cnt;i++){
		report(nm[i-1],nm[i]);
	}
    return;
}