zoukankan      html  css  js  c++  java
  • 【Codeforces 522B】Photo to Remember

    【链接】 我是链接,点我呀:)
    【题意】

    题意

    【题解】

    模拟题、用set模拟下就好

    【代码】

    import java.io.*;
    import java.util.*;
    
    public class Main {
        
        
        static InputReader in;
        static PrintWriter out;
            
        public static void main(String[] args) throws IOException{
            //InputStream ins = new FileInputStream("E:\rush.txt");
            InputStream ins = System.in;
            in = new InputReader(ins);
            out = new PrintWriter(System.out);
            //code start from here
            new Task().solve(in, out);
            out.close();
        }
        
        static int N = 200000;
        static class Task{
    
        	static class cmp implements Comparator<Integer>{
    
    			@Override
    			public int compare(Integer o1, Integer o2) {
    				return o2-o1;
    			}
        		
        	}
            
            int n;
            int w[] = new int[N+10],h[] = new int[N+10];
            int cnt[] = new int[N+10];
            long sum = 0;
            TreeSet myset = new TreeSet(new cmp());
            
            public void solve(InputReader in,PrintWriter out) {
            	n = in.nextInt();
            	for (int i = 1;i <= n;i++) { 
            		w[i] = in.nextInt();h[i] = in.nextInt();
            		if (myset.contains(h[i])) {
            			cnt[h[i]]++;
            		}else {
            			myset.add(h[i]);
            			cnt[h[i]] = 1;
            		}
            		sum = sum + w[i];
            	}
            	
            	for (int i = 1;i <= n;i++) {
            		long tempsum = sum - w[i];
            		if (cnt[h[i]]==1) {
            			myset.remove(h[i]);
            		}
            		int high = (int)myset.first();
            		out.print(1l*high*tempsum+" ");
            		if (cnt[h[i]]==1) {
            			myset.add(h[i]);
            		}
            	}
            	
            }
        }
    
        
    
        static class InputReader{
            public BufferedReader br;
            public StringTokenizer tokenizer;
            
            public InputReader(InputStream ins) {
                br = new BufferedReader(new InputStreamReader(ins));
                tokenizer = null;
            }
            
            public String next(){
                while (tokenizer==null || !tokenizer.hasMoreTokens()) {
                    try {
                    tokenizer = new StringTokenizer(br.readLine());
                    }catch(IOException e) {
                        throw new RuntimeException(e);
                    }
                }
                return tokenizer.nextToken();
            }
            
            public int nextInt() {
                return Integer.parseInt(next());
            }
        }
    }
    
  • 相关阅读:
    10. Regular Expression Matching
    9. Palindrome Number (考虑负数的情况)
    8. String to Integer (整数的溢出)
    7. Reverse Integer (整数的溢出)
    LeetCode Minimum Size Subarray Sum
    LeetCode Course Schedule II
    Linux 文件缓存 (一)
    LeetCode Tries Prefix Tree
    Linux : lsof 命令
    LeetCode Binary Tree Right Side View
  • 原文地址:https://www.cnblogs.com/AWCXV/p/10476034.html
Copyright © 2011-2022 走看看