hdoj 2022 选主角

Problem Description
potato老师虽然很喜欢教书,但是迫于生活压力,不得不想办法在业余时间挣点外快以养家糊口。
“做什么比较挣钱呢?筛沙子没力气,看大门又不够帅...”potato老师很是无奈。
“张艺谋比你还难看,现在多有钱呀,听说还要导演奥运开幕式呢!你为什么不去娱乐圈发展呢?”lwg在一旁出主意。
嗯,也是,为了生存,就委屈点到娱乐圈混混吧,马上就拍一部激光电影《杭电记忆——回来我的爱》。
说干就干,马上海选女主角(和老谋子学的,此举可以吸引媒体的眼球,呵呵),并且特别规定,演员必须具有ac的基本功,否则直接out!
由于策划师风之鱼(大师级水王)宣传到位,来应聘的MM很多,当然包括nit的蛋糕妹妹等呼声很高的美女,就连zjut的jqw都男扮女装来应聘(还好被安全顾问hdu_Bin-Laden认出,给轰走了),看来娱乐圈比acm还吸引人哪...
面试那天,刚好来了mn个MM,站成一个mn的队列,副导演Fe(OH)2为每个MM打了分数,分数都是32位有符号整数。
一开始我很纳闷:分数怎么还有负的?Fe(OH)2解释说,根据选拔规则,头发染成黄色、化妆太浓、穿的太少等等都要扣分数的,扣的多了就可能是负分了,当然,如果发现话语中夹有日语,就直接给-2147483648分了。
分数送上来了,是我做决定的时候了,我的一个选拔原则是,要选一个面试分数绝对值(必须还是32位整数)最大的MM。
特别说明:如果不幸选中一个负分的MM,也没关系,因为我觉得,如果不能吸引你,那要想法恶心你。

Input
输入数据有多组,每组的第一行是两个整数m和n,表示应聘MM的总共的行列数,然后是m行整数,每行有n个,m和n的定义见题目的描述。

Output
对于每组输入数据,输出三个整数x,y和s,分别表示选中的MM的行号、列号和分数。
note:行号和列号从一开始,如果有多个MM的分数绝对值一样,那么输出排在最前面的一个(即行号最小的那个,如果行号相同则取列号最小的那个)。

Sample Input

2 3
1 4 -3
-7 3 0

Sample Output

2 1 -7


这题最后要输出的成绩就是原来的成绩,但是在比较的时候如果遇到负数,要用他的绝对值比较。
所以我们要想办法确定要输出的这个成绩是负数还是正数
2020与这一题类似,但是这题要用到一个二维数组,所以在什么时候将输入的成绩转换成绝对值也是要考虑的,因为一转成绝对值后,相应的你就要将个这个数在二维数组中的位置记录下来

#include <stdio.h>
#include <math.h> 
int main(){
    int a[100][100];
    int i,j;
    int n,m;
    int x,y,s;
    int max;
    int J,I;// 记录绝对值位置 
    while(~scanf("%d%d",&m,&n)){
        max=0; 
        for(i=1;i<=m;i++){       //输入二维数组 
            for(j=1;j<=n;j++){
                scanf("%d",&a[i][j]);
                }
            }
        for(i=1;i<=m;i++){
            for(j=1;j<=n;j++){
                if(a[i][j]<0){   //如果这个数是负数,将他变为绝对值 ,否则执行下面的else if 
                    a[i][j]=fabs(a[i][j]);
                    if(max<a[i][j]){  //如果max小于这个绝对值,将这个绝对值赋值给max 
                        max=a[i][j];
                        x=i;
                        y=j;
                        I=i;  //用I和J记录这个绝对值在二维数组中的位置 
                        J=j; //这个位置每次都会更新,且一定是最大的那个绝对值的位置
                    }
                }
                else if(max<a[i][j]){
                    max=a[i][j];
                    x=i;
                    y=j;
                }               
            }
        }
        for(i=1;i<=m;i++){
            for(j=1;j<=n;j++){
                if(max==a[i][j]&&i==I&&J==j) //如果这个数与max相等且其位置与上面记录的绝对值的位置相等 
                    max=-max;//将他变回负数 
            }
        }
        printf("%d %d %d\n",x,y,max);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,408评论 0 2
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,535评论 0 17
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,464评论 0 5
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,818评论 0 10
  • 那天微风徐徐吹过 抬头望 冷眼 好似从未见过
    谭蝶衣阅读 108评论 0 0