Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "encoding/json"
- "fmt"
- "io/ioutil"
- "net/http"
- "sort"
- )
- type Team struct {
- Name string `json:"name"`
- Institute string `json:"institution"`
- }
- func main() {
- // create a new HTTP client
- client := &http.Client{}
- // create a new GET request
- req, err := http.NewRequest("GET", "https://icpc.global/api/team/search/site/accepted/22697?q=proj:institution,name%3B&page=1&size=1250", nil)
- if err != nil {
- fmt.Println("Error creating request:", err)
- return
- }
- // execute the request
- resp, err := client.Do(req)
- if err != nil {
- fmt.Println("Error sending request:", err)
- return
- }
- defer resp.Body.Close()
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println("Error reading response body:", err)
- return
- }
- var teams []Team
- err = json.Unmarshal(body, &teams)
- if err != nil {
- fmt.Println("Error parsing response body as JSON:", err)
- return
- }
- distinctCollege := make(map[string]int)
- for i := 0; i < len(teams); i++ {
- distinctCollege[teams[i].Institute]++
- }
- keys := make([]string, 0, len(distinctCollege))
- for k := range distinctCollege {
- keys = append(keys, k)
- }
- sort.SliceStable(keys, func(i, j int) bool {
- return distinctCollege[keys[i]] > distinctCollege[keys[j]]
- })
- for _, k := range keys {
- fmt.Println(k, distinctCollege[k])
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement