#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; }