大魚吃小魚(簡單模擬)
阿新 • • 發佈:2017-09-17
一個 入棧 nco http spa println code tar pre
題目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1289
從左往右將數字壓入棧裏(想象成一個水平向右的棧),如果魚是向左的讓它一直吃,直到被吃或者吃完為止
import java.util.Scanner; import java.util.Stack; public class N1289 { private static Scanner cin; public static void main(String[] args) { cin = new Scanner(System.in);int n=cin.nextInt(),ans=n,size,dir; Stack<Integer> s=new Stack<Integer>(); for(int i=0;i<n;i++) { size=cin.nextInt(); dir=cin.nextInt(); if(dir==1) s.push(new Integer(size)); else{ while(s.empty()!=true) { if(size>Integer.parseInt(s.peek().toString())) { s.pop(); ans--; } else { ans--; break; } } } } System.out.println(ans); } }
大魚吃小魚(簡單模擬)