#include<iostream>
using namespace std;
#define max_len 1000
//用两个数组分别用于记录整数对与判断是否更新当前y值
//简单易懂
int main(void)
{
int n;
int min_x,min_y;
int a[max_len];//记录整数对x,y
bool b[max_len] = {false};//记录当前x是否已有y与之对应,用于更新y
while(cin >> n)
{
int x,y;
cin >> x >> y;
min_x = x;
a[x] = y;
b[x] = true;
for(int i =1;i < n;i++)
{
cin >> x >> y;
if(b[x] == false)//当前x没有与之对应的y则赋值给数组a,置数组b为true
{
a[x] = y;
b[x] = true;
}
if(a[x] > y && b[x] == true)
a[x] = y;
if(min_x > x)
min_x = x;
}
cout << min_x << ' ' << a[min_x] << endl;
}
return 0;
} import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
TreeMap<Integer, Integer> map = new TreeMap<>();
for (int i = 0; i < n; i++) {
int x = scanner.nextInt();
int y = scanner.nextInt();
if (map.get(x) == null) map.put(x, y);
else if (map.get(x) > y) map.put(x, y);
}
Map.Entry<Integer, Integer> entry = map.firstEntry();
System.out.println(entry.getKey() + " " + entry.getValue());
}
} import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int minX =Integer.MAX_VALUE;
int minY =Integer.MAX_VALUE;
for (int i = 0; i < n; i++) {
int x = scanner.nextInt();
int y = scanner.nextInt();
if (x<minX||(x==minX&&y<minY)){
minX=x;
minY =y;
}
}
System.out.println(minX+" "+minY);
}
} #include<bits/stdc++.h>
using namespace std;
struct Pair{
int x;
int y;
};
bool cmp(Pair a,Pair b){
if(a.x>b.x)
return 0;
else if(a.x==b.x){
if(a.y<b.y)
return 1;
else
return 0;
}
else
return 1;
}
int main(){
int n;
while(cin>>n){
Pair *p=new Pair[n];
for(int i=0;i<n;i++)
cin>>p[i].x>>p[i].y;
sort(p,p+n,cmp);
cout<<p[0].x<<" "<<p[0].y<<endl;
}
} #include<iostream>
#include<algorithm>
using namespace std;
struct Node{
int order;
int value;
} arra[10000];
bool cmp(Node x,Node y){
return x.value<y.value;
}
int main(){
int n=0;
while(scanf("%d",&n)==1){
for(int i=0;i<n;i++){
arra[i].order=i;
scanf("%d",&arra[i].value);
}
sort(arra,arra+n,cmp);
int num[10000];
int count=1;
for(int i=0;i<n;i++){
int j=arra[i].order;
num[j]=count;
if(arra[i].value!=arra[i+1].value&&i<n-1)
count++;
}
printf("%d",num[0]);
for(int i=1;i<n;i++){
printf(" %d",num[i]);
}
printf("\n");
}
return 0;
}
#include<iostream>
#include<algorithm>
using namespace std;
struct Pair{int x;int y;};
bool Compare(Pair p1,Pair p2){
return (p1.x<p2.x)||(p1.x==p2.x&&p1.y<p2.y);
}
int main(){
int n;
while(cin>>n){
Pair arr[n];
for(int i=0;i<n;i++)
scanf("%d%d",&arr[i].x,&arr[i].y);
sort(arr,arr+n,Compare);
printf("%d %d",arr[0].x,arr[0].y);
}
} #include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct Digital {
int x;
int y;
bool operator< (const Digital d) const {
if (x == d.x) {
return y < d.y;
}
return x < d.x;
}
};
int main () {
int n;
while (cin >> n) {
Digital digital[n];
for (int i = 0; i < n; ++i) {
cin >> digital[i].x >> digital[i].y;
}
sort(digital, digital + n);
cout << digital[0].x << " " << digital[0].y << endl;
}
return 0;
} #include<iostream>
using namespace std;
int main(){
int n;
while(cin>>n){
int x, y, minx, miny;
cin>>minx>>miny;
n--;
while(n--){
cin>>x>>y;
if(x<minx || (x==minx && y<miny)){
minx=x; miny=y;
}
}
cout<<minx<<' '<<miny<<endl;
}
return 0;
} #include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
struct node{
int x;
int y;
};
bool cmp(node a,node b){
if(a.x!=b.x)
return a.x<b.x;
else
return a.y<b.y;
}
int main(){
int n;
while(cin>>n){
node h[10010];
for(int i=1;i<=n;i++)
cin>>h[i].x>>h[i].y;
sort(h+1,h+1+n,cmp);
cout<<h[1].x<<" "<<h[1].y<<endl;
}
return 0;
} import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class Arr{
private int x;
private int y;
public Arr(int x, int y) {
this.x = x;
this.y = y;
}
public Integer getX() {
return x;
}
public Integer getY() {
return y;
}
}
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader rd = new BufferedReader(new InputStreamReader( System.in));
int n = Integer.parseInt(rd.readLine().trim());
int n2 = n;
List<Arr> a = new ArrayList<>();
while(n2-->0){
String[] s = rd.readLine().split(" ");
a.add(new Arr(Integer.parseInt(s[0]),Integer.parseInt(s[1])));
}
Collections.sort(a, new Comparator<Arr>() {
@Override
public int compare(Arr o1, Arr o2) {
int f = o1.getX().compareTo(o2.getX());
int s = o1.getY().compareTo(o2.getY());
if(f==0){
return s;
}
return f;
}
});
Arr temp = a.get(0);
System.out.println(temp.getX()+" "+temp.getY());
}
} 使用List集合,定义一个类Arr,有X和Y两个属性,直接调用Collections排序,自定义compare函数
#include<iostream>
#include<algorithm>
using namespace std;
class numpair{
public:
int x;
int y;
};
bool cmp(numpair a, numpair b){
if(a.x==b.x){
return a.y<b.y;
}else{
return a.x<b.x;
}
}
int main(){
int n;
while(cin>>n){
numpair arr[1000];
for(int i=0;i<n;i++){
cin>>arr[i].x>>arr[i].y;
}
sort(arr,arr+n,cmp);
cout<<arr[0].x<<" "<<arr[0].y;
}
return 0;
} import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()){
int n = sc.nextInt();
Sqlist li = new Sqlist();
for (int i = 0; i < n; i++){
XY numXy = new XY(sc.nextInt(), sc.nextInt());
li.add(numXy);
}
int x = li.min().getX();
int y = li.min().getY();
System.out.print(x + " " + y);
}
sc.close();
}
}
class XY{
private int x;
private int y;
public XY(){}
public XY(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
}
class Sqlist{
private XY[] arr = new XY[1024];
private int len = 0;
public void add(XY numXy){
arr[len] = numXy;
len++;
}
public XY min(){
XY tem = arr[0];
for (int i = 0; i < len; i++){
if (arr[i].getX() < tem.getX()){
tem = arr[i];
}
if (arr[i].getX() == tem.getX() && arr[i].getY() < tem.getY()){
tem = arr[i];
}
}
return tem;
}
} #include<stdio.h>
int main()
{
int n,i,j,t_x,t_y,count;
scanf("%d\n",&n);
int a[1000][2];
int b[1000][2];
for(i=0;i<n;i++)
{
for(j=0;j<2;j++)
{
scanf("%d",&a[i][j]);
}
}
t_x=a[0][0];
for(i=0;i<n;i++)
{
if(t_x>=a[i][0])
t_x=a[i][0];
}
count=0;
for(i=0;i<n;i++)
{
if(a[i][0]==t_x)
{
count++;
}
}
int k=0;
for(i=0;i<count;i++)
{
for(k;k<n;k++)
{
if(a[k][0]==t_x)
{
b[i][0]=a[k][0];
b[i][1]=a[k][1];
break;
}
}
k=k+1;
}
t_y=b[0][1];
for(i=0;i<count;i++)
{
if(t_y>=b[i][1])
t_y=b[i][1];
}
printf("%d %d",t_x,t_y);
return 0;
} #include<iostream>
#include<algorithm>
using namespace std;
int main(){ int n;
while(cin >> n){
int* x = new int[n]();
int* y = new int[n]();
for(int i=0; i<n; i++){
cin >> x[i];
cin >> y[i];
}
int min_x = *min_element(x, x+n);
int min_x_index = min_element(x, x+n) - x;
int min_y = y[min_x_index];
for(int i=0; i<n; i++){
if(x[i] == min_x){
min_y = min(min_y, y[i]);
}
}
cout<<min_x<<" "<<min_y<<endl;
}
return 0;
} #include <stdio.h>
int main()
{
int n,a[1000][2],i,min,minn,j;
while(scanf("%d",&n)!=EOF)
{
for(i=0,j=0;i<n;i++)
{
scanf("%d%d",&a[i][0],&a[i][1]);
if(i==0)
{
min=a[i][0];
}
else
{
if(a[i][0]<min)
{
min=a[i][0];
}
}
}
for(i=0,j=0;i<n;i++)
{
if(a[i][0]==min&&j==0)
{
minn=a[i][1];j++;
}
else if(a[i][0]==min&&a[i][1]<minn)
{
minn=a[i][1];
}
}
printf("%d %d",min,minn);
}
return 0;
}