1. 程式人生 > >大魚吃小魚(簡單模擬)

大魚吃小魚(簡單模擬)

一個 入棧 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); } }

大魚吃小魚(簡單模擬)