結果
| 問題 | 
                            No.1205 Eye Drops
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2024-05-19 13:45:56 | 
| 言語 | Go  (1.23.4)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 1,741 ms / 2,000 ms | 
| コード長 | 548 bytes | 
| コンパイル時間 | 14,675 ms | 
| コンパイル使用メモリ | 234,784 KB | 
| 実行使用メモリ | 7,944 KB | 
| 最終ジャッジ日時 | 2024-12-20 17:00:39 | 
| 合計ジャッジ時間 | 23,822 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge2 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 37 | 
ソースコード
// No.1205 Eye Drops
package main
import (
	"fmt"
	"sort"
)
func main() {
	var n, m int
	fmt.Scan(&n, &m)
	type C struct {
		T int // time
		P int // position
	}
	mm := make([]C, m)
	for i := 0; i < m; i++ {
		fmt.Scan(&mm[i].T, &mm[i].P)
	}
	sort.Slice(mm, func(i, j int) bool {
		return mm[i].T < mm[j].T
	})
	prev := C{T: 0, P: 0}
	ans := "Yes"
	for j := 0; j < m; j++ {
		t := mm[j].T - prev.T
		p := max(prev.P-mm[j].P, mm[j].P-prev.P) - t
		if p > 0 {
			ans = "No"
			break
		}
		prev.P = mm[j].P
		prev.T = mm[j].T
	}
	fmt.Println(ans)
}