![]() |
#2
码农chang2016-11-19 18:29
我的代码:
import java.util.*; public class Main { user xmFC = new user(1); ArrayList<user> fc = xmFC.friendList; public static void main(String[] args) throws Exception{ Main friendCircle = new Main(); Scanner cin = new Scanner(System.in); int m = cin.nextInt(); if(m>=1000){System.exit(0);} for(int i=2;i<=m;i++){ friendCircle.addFriend(i); } int n = cin.nextInt(); for(int i=0;i<n;i++){ int a = cin.nextInt(); if(a>m){System.exit(0);} int b = cin.nextInt(); if(b>m){System.exit(0);} friendCircle.isFriend(a, b); } int w = cin.nextInt(); for(int i=0;i<w;i++){ int u = cin.nextInt(); if(u>m){System.exit(0);} int uc = cin.nextInt(); if(uc>=1000){System.exit(0);} (u, uc); } int rId = cin.nextInt(); if(rId ==1){ friendCircle.xmFC.readComment(); }else{ friendCircle.read(rId);} cin.close(); } public void addFriend(int userId){ user friend = new user(userId); xmFC.beFriend(friend); friend.beFriend(xmFC); } public void isFriend(int a,int b){ fc.get(a-1).beFriend(fc.get(b-1)); fc.get(b-1).beFriend(fc.get(a-1)); } public void comment(int u,int uc){ fc.get(u-1).comment(uc); } public void read(int rId){ fc.get(rId-1).readComment(); } } class user { int id ; ArrayList<Integer> cIds = new ArrayList<Integer>(); boolean hasComment; ArrayList<user> friendList = new ArrayList<user>(); public user(int userId) { this.id = userId; friendList.add(this); } public void beFriend(user b){ if(!this.friendList.contains(b)){ friendList.add(b); } } public void comment(int cId){ this.cIds.add(cId); this.hasComment = true; } public void readComment() { for(int i=0;i<friendList.size();i++){ user readUF = friendList.get(i); if(readUF.hasComment){ int fid = readUF.id; for(int j=0;j<readUF.cIds.size();j++){ int fcId = readUF.cIds.get(j); System.out.print(String.format("%1$8d", fid)); System.out.println(String.format("%1$8d", fcId)); } } } } } |
描述
在微信朋友圈中,只有好友自己才能互相评论,当浏览好友的朋友圈时,只能看到与自己也是好友的用户发表的评论。例如 a与b是好友,a与c是好友,a与d是好友,c与d是好友,b与c不是好友,b与d不是好友;如果a发了一张照片,b,c,d都做了一条评论;则a能看到所有评论,b只能看到自己的评论,c能看到c与d的评论,d能看到c与d的评论。
小明的朋友圈(包含小明)共有m(小于1000)个用户(小明与其他的所有人都是好友),好友是相互的,每个用户用一个整数(小于1000)ID表示,小明的ID为1,其他的好友依次编号;然后输入一个整数n,表示小明的好友之间有n对好友之间也是好友,然后输入n行,每行包含2个用户ID,表示这两个ID对应的用户是好友;再输入一个w,表示对小明发布的一张照片w条评论,后面有w行,每行包含一个用户ID、一个评论ID(小于10000);最后一行输入一个整数表示阅读小明朋友圈的用户ID。
请输出阅读者能看到的评论者ID及评论ID,每条评论占一行,评论者ID及评论ID占8个字符宽度右对齐。
输入
第1行一个整数m表示小明的朋友圈(包含小明)共有m(小于1000)个用户
第2行一个整数n表示小明的好友之间有n对好友之间也是好友
接下来的n行,每行包含2个用户ID,表示这两个ID对应的用户是好友;
接下来的1行包含一个整数w,表示对小明发布的一张照片w条评论
后面有w行,每行包含一个用户ID、一个评论ID(小于10000);
最后一行包含一个整数表示阅读小明朋友圈的用户ID。
输出
输出阅读者能看到的评论者ID及评论ID,每条评论占一行,包含评论者ID及评论ID,评论者ID及评论ID占8个字符宽度右对齐。
样例输入
4
4
1 2
1 3
1 4
3 4
3
2 100
3 101
4 102
1
样例输出
2 100
3 101
4 102
提示
小明能看到所有的评论,小明与所有的其他用户的是好友(不需要输入)