Back Junアルゴリズム|10250-ACMホテル


白準アルゴリズム10250号:ACMホテルJAVA


Backjunアルゴリズム10250回:ACM hotel問題ショートカット

解答方法


  • hはホテルの一番高い階で、wは各階番号の一番大きい部屋番号で、nはお客さんが入る順番です

  • 部屋番号はフロア+ナンバーで構成されています.例えば、部屋番号が402番であれば、4はフロア、2は番号です.

  • n番目の客が入る部屋番号の階数はn%h(nをhで割った残り)である.

  • n番目のお客様が入る部屋番号はn/h+1です.

  • 考慮すべき事項


  • 部屋番号が仕事場の場合は、前に0を付けて印刷します.たとえば、部屋番号が3の場合は03として出力します.

  • 0階はありません.n%h値が0の場合、hレイヤに割り当てられます.

  • 103番より301番が好きです.3番目のお客様は301番に手配されるはずです.nがhより小さい場合、レイヤ番号はnであるべきである.

  • ソースコード

    import java.io.*;
    
    public class Main{
    	public static void main(String[] args) throws IOException {
    		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    		
    		int t = Integer.parseInt(br.readLine());
    		for (int i=0; i<t; i++) {
    			String string[] =br.readLine().split(" ");
    			int h,w,n;
    			h = Integer.parseInt(string[0]);
    			w = Integer.parseInt(string[1]);
    			n = Integer.parseInt(string[2]);
    			int floor;
    			int room;
    			if (n%h<=0) {
    				if (n%h==0) 
    					floor = h;
    				else
    					floor = n;
    				room = n/h;
    			}
    			else {
    				floor = n%h;
    				room = (n/h)+1;
    			}
    			System.out.println(floor+String.format("%02d", room));
    		}
    	}
    }