1191:星を数える(構造トピック)
タイトル説明
ある日、シャオミンが星を数えて庭に座っていたとき、ガードンは彼女に問題を与えました:ガードンは空に長方形の領域を描き、長方形の領域にある星の数と慈悲深い神を入力するように彼に頼みましたまた、彼のために各星の座標をマークしました。しかし、シャオ・ミンは数えたときに混乱しましたが、彼の原則は次のとおりでした。Xiaomingが数えた星の座標を教えてくれたら、彼が再配置して(2つの星の座標が同じであれば、1つの星と見なされます)、星の数を計算するのを手伝ってもらえますか。
入力
最初に整数n(n <= 300)を入力し、次に整数のnペアを入力します。各ペアは、Xiaomingによってカウントされた星の位置を表します(星の座標は-10000〜10000です)。
output
星の数を出力します。
サンプル入力コピー503 1 5
1 1 0 115
サンプル出力コピー4ソース/分類
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 301
typedef struct point{
int x;
int y;
}point;
int main(){
int n,x,y,i=0,f=0;
point p[N];
scanf("%d",&n);
while(n--){
scanf("%d %d",&x,&y);
//第一个直接写入
if(i==0) {
p[i].x=x;p[i].y=y;i++;}
//之后的与写入的比较是否有重复的
else{
f=0;//标记是否重复
for(int j=0;j<i;j++)
if(x==p[j].x&&y==p[j].y) f=1;
//没有重复的,写入
if(f==0) {
p[i].x=x;p[i].y=y;i++;}
}
}
printf("%d\n",i);
return 0;
}