输出最小整数对

题目描述

第一行输入一个数n,1 <= n <= 1000,下面输入n行数据,每一行有两个数,
分别是x y。输出一组x y,该组数据是所有数据中x最小,且在x相等的情况下
y最小的。 

输入描述:

输入有多组数据。
每组输入n,然后输入n个整数对。

输出描述:

输出最小的整数对。

分析:

根据题意,定义最小的整数对min,每输入一个数对x,y就判断一次,当符合条件
就更新min的值,最后得出min
#include <iostream>

using namespace std;

struct num{
    int x;
    int y;
};

int main(){
    num min;
    int n;
    while(cin >> n) {
        cin >> data[0].x >> data[0].y;
        min.x = data[0].x;
        min.y = data[0].y;
        for(int i = 1; i < n; i++){
            cin >> data[i].x >> data[i].y;
            if(data[i].x < min.x){
                min.x = data[i].x;
                min.y = data[i].y;
            }
            if((data[i].x == min.x) && data[i].y < min.y){
                min.x = data[i].x;
                min.y = data[i].y;
            }
        }
    cout << min.x << " " << min.y << endl;
    }
     return 0;
}

原文地址:https://www.cnblogs.com/zhuobo/p/10200314.html

时间: 2024-10-13 17:30:40

输出最小整数对的相关文章

将数组中的元素连接成一个整数并输出最小整数

将数组中的元素合并成一个整数并输出最小整数.例如数组{32,321},最小为32132:数组{100,22,199}最小为10019922... 这本是一个面试题,还是分享下我的方法.由于数组的合并可能会出现越界,故用整数的方法不可行.我的想法是将数组按照需要的进行排序,例如,前面32,321,排序后321,32.那怎样排序呢?其实就是两个数进行比较,上面32和321连接成的数是32132和32321,就是比较这两个数谁小,谁就在前.当然,考虑到越界,处理都是用的字符串. 下面是代码: #inc

N个数中未出现的最小整数

Description 给出一串数字,这串数字由 n 个数 ai 组成,找出未出现在这串数字中的最小正整数 Input 输入第一行为一个正整数 n (1 <= n <= 1000) 第二行为 n 个正整数 ai ( 1 <= ai <= 1000000000) Output 输出没有出现在这 n 个正整数中的最小的正整数 Sample Input 5 2 4 3 5 151 100 101 102 103 Sample Output 62 思路 因为n的大小为1000,所以没有出现

Leetcode 1022. 可被 K 整除的最小整数

1022. 可被 K 整除的最小整数 显示英文描述 我的提交返回竞赛 用户通过次数74 用户尝试次数262 通过次数75 提交次数1115 题目难度Medium 给定正整数 K,你需要找出可以被 K 整除的.仅包含数字 1 的最小正整数 N. 返回 N 的长度.如果不存在这样的 N,就返回 -1. 示例 1: 输入:1 输出:1 解释:最小的答案是 N = 1,其长度为 1. 示例 2: 输入:2 输出:-1 解释:不存在可被 2 整除的正整数 N . 示例 3: 输入:3 输出:3 解释:最小

【输出一个整数的二进制存储形式】

// 输出一个整数的二进制存储形式void putBinary(int n){ int bits = sizeof(n) * 8; while (bits-->0) { printf("%d", n>>bits&1); if (bits%4==0) printf(" "); } printf("\n");}

poj 1815 Friendship 最小割输出最小方案

这题卡了好久啊,最小割模型很容易想,拆点就行.就像poj的Thieves一样 每个点 a拆成 a->a',容量为1. 其他相连的点 a'->b ,容量为INF 源连接s',t连接汇 问题在于输出最小的割集 更好的方法我还不会,只能枚举. 这里基于贪心的思想,从小到大删边, 若删除i->i',会使得最小割变小,则输出i,并且i->i'这条边不要恢复 若最小割不变,则恢复这条边,继续枚举. 一开始就是因为恢复了要割去的边,无限WA. #include<cstdio> #in

从一个整数数组中取出最大的整数,最小整数,总和,平均值

//从一个整数数组中取出最大的整数,最小整数,总和,平均值 //声明一个int类型的数组,并且随意的赋初值 int[] nums={1,2,3,4,5,6,7,8,9,0}; //声明两个变量用来存储最大值和最小值 int max=int.MinValue;//nums[0]; int min=int.MaxValue;//nums[0]; int sum=0; //循环的让数组中的每个元素跟我的最大值,最小值进行比较 for(int i=0;i<nums.Length;i++) { if(nu

获取不存在于某集合的大小至少为某整数的最小整数

题:获取大小至少为startNo,并且不存在于某个不确定是否有序的整数数组Array中的,最小整数. 如:不存在于2,6,8,11中的不小于3的最小整数为3. 如下测试代码,未发现实现不对... public static final String timeDifferenceFormats[] = { "天", "小时", "分钟", "秒" }; public static final String timeDiffere

顺序输出一个整数的各位数字

从高位开始逐位输出一个整数的各位数字:输入一个整数,从高位开始逐位分割并输出它的各位数字. #include<stdio.h> int main(void) { int i,j,m,n,s,k,a,b=0; scanf("%d",&m); k=m; do { m=m/10; b++; }while(m!=0); for(i=1;i<=b;i++) { s=k; for(j=1;j<=b-i;j++) s=s/10; n=s%10; printf(&quo

以整数元素构成的list中的数字组成最小整数

问题 把一个int型数组中的数字拼成一个串,这个串代表的数字最小. 思路说明 不同角度,对原题理解有所不同.我依照以下的理解方式求解. 对这个问题的理解: 有一个元素是int类型的list: 将上述list中的每一个元素的数字分别取出来.然后将这些数字的顺序进行从新排列,并将当中的最小整数输入.就是题目中要求的最小数字. 假设依照上述理解,在解题中,最应当小心的是数字假设非常大,比方list中的某个int元素是:222222222222227777777777776666666666699999