描述
你手里拿着很多字母牌,在一个方格棋盘上下棋,棋盘的中心是坐标(0,0),你把字母牌在棋盘上摆放,你规定一个美丽的方格是指中心也是坐标(0,0),且方格中不存在相同字母的牌,给你一个摆放完的棋盘,问是美丽方格中最多多少张牌?
输入描述
一行,一个整数n,表示一共摆了多少张牌
2~n+1行,每行三个值,x,y,c,分别表示坐标(x,y),及摆放的牌字母c
输出描述
美丽方格中最多多少张牌
用例输入 1
5
2 2 a
-1 -2 b
-4 4 d
-3 1 c
3 -3 a
用例输出 1
2
#include <bits/stdc++.h>
using namespace std;
struct node{
int x,y;
char c;
}a[1000005];
int n;
bool check(int m){
bool v[130]={};
for(int i=1;i<=n;i++){
if(a[i].x>=-m&&a[i].x<=m&&a[i].y>=-m&&a[i].y<=m){
if(v[(int)a[i].c]) return 0;
v[(int)a[i].c]=1;
}
}
return 1;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].x>>a[i].y>>a[i].c;
}
int l=0,r=1000000,ans=0;
while(l<r){
int mid=(l+r+1)>>1;
if(check(mid)) l=mid;
else r=mid-1;
}
for(int i=1;i<=n;i++){
if(a[i].x>=-l&&a[i].x<=l&&a[i].y>=-l&&a[i].y<=l){
ans++;
}
}
cout<<ans;
return 0;
}
求大佬们帮我找出我代码的问题,样例过了但WA了